1.问题
写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在
T的下标j;如果x不在T中,输出j=0。
2.分析
两种检索算法,我们选择1.顺序查找法。2.二分查找法。
3.伪代码
顺序查找法:for (int i = 0; i < n; i++) {if (T[i] == x) {printf("%d", i);flag = 1;}}二分查找法:int top = 0, end = n - 1, mid;int find = -1;while (top <= end) {mid = (top + end) / 2;if (T[mid] == x) {find = mid;break;}else if (T[mid] > x) {end = mid - 1;}elseend = top + 1;}4.分析
顺序查找法
复杂度:O(n)
二分查找法
复杂度:O(log n)
5.源码
https://github.com/jiachenwei123/jiajia/tree/master