标签:else microsoft style font soft for 中心 分析 size
1.实践题目
7-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.算法描述
核心算法是二分查找,将已经排好的序列一分为二,划分的中心数定义为mid,然后将mid与要查找的数相比较,根据大小再将将其划分。
源代码:
时间复杂度实际上就是while循环的次数,总共有n个元素,渐渐跟下去就是n,n/2,n/4,....n/2^k(k为循环次数),令n/2^k=1,可得k=log2n,则时间复杂度为O(n)=O(log2n)(以2为底,n的对数)。
5.心得体会
在大一学习c++的时候就已经初步了解过这种方法,现在对这种方法的使用可以说更加流畅。在使用中尤其要注意再次划分时的mid+1和mid-1,以免出错。
标签:else microsoft style font soft for 中心 分析 size
原文地址:https://www.cnblogs.com/lisihao/p/11569187.html