实验报告
课程名称 《算法分析与设计》 实验日期 2020 年 3 月 10日 至 2020年 3 月 17 日
学生姓名 戴昊宇 所在班级 计算机184 学号 2018212212015
实验名称 检索算法(二分查找法)
实验地点 同组人员 无
1.问题
在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。
2.解析
用二分查找法进行数组检索。
3.设计
输入:数组T,下标从 l 到 r;数 x
输出:j // 如果 x 在 T 中,j为下标;否则为0
1. l<-1; r<-n
2. while l<= r do
3. m<-[(l+r)/2]
4. if T[m]=x then return m // x恰好等于中位元素
5. else if T[m]>m then r<-m-1
6. else <-m+1
7. return 0
4.分析
时间复杂度:O(logn)
5.源码
https://github.com/yyqx-1128/text