第二章上机实践报告

1.实践题目

二分查找

2.问题描述

输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入格式:

输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。

输出格式:

输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入样例:

4
1 2 3 4
1

输出样例:

0
2

3.算法描述用了标准的二分法。比较查找数与中间值的大小,如果查找数大,搜索范围缩为中间值右边区域,如果查找数小,搜索范围缩小为中间值左边区域,直到查找数等于中间值。

4.算法时间及空间复杂度

每次查找范围减半,所以时间复杂度为O(logn)
辅助空间为常数级别,所以空间复杂度为O(1)

5.心得体会
在二分法的基础上不断拓展,学到了很多应用方法。但总是会在while循环中搞混,搞不清语句应该放在哪个循环体中,判断的语句也经常考虑不够周到。所以还是要把最基础的先运用熟练才能对付这些拓展的题目,要多看书上的例子。

posted @ 2018-10-14 21:21  ppplllk  阅读(136)  评论(0编辑  收藏  举报