1.问题
写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.
2.解析
- 顺序查找:这是最简单也是最先想到的算法,但是它的缺陷也很明显,如果要找到的数在数组的末尾,那么要找到这个数就必须遍历一遍数组,当这个数组很大时,找到这个数所要花费的时间是我们无法接受的。
- 二分查找:相较于顺序查找,二分查找是我们所学过的较为快速的一种查找方式,它的操作步骤也很简单,首先将这个数组分为两部分,取一个中间值与要查找的值相比较,如果比要查找的值值大那就在左半边查找,反之则在右半边查找。
3.设计
1.顺序查找:
int SequentialSearch(int T[], int n, int x