1. 问题
l 写出两种检索算法:在一个排好序的数组T[1..n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。
2. 解析
常规检索算法:因为数组T已经排好序了,因此通过遍历,当T[i] > x时,仍然没有找到T[k] == x(k < i),说明T数组中不存在,T[i] == x
二分检索算法:因为数组T的有序性,且已知X的值,我们可以不断二分从而缩小T[i] == x可以存在的区间。
3. 设计
4. 分析
常规检索时间复杂度:O(n)
二分检索实践复杂度:O(logn)
5. 源码
https://github.com/BambooCertain/Algorithm.git