标签:取整 元素 大小 心得 描述 strong n个元素 查找 循环
实践题目:7-1二分查找(20分)
问题描述:输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数
算法描述:求取序列的中位数,比较查找数x与中位数的大小,中位数比查找数x大,截取中位数左则序列作为新的序列,中位数比查找数x小,截取中位数右则序列作为新的序列;重复以上操作,直到找到x。
算法时间及空间复杂度分析:
时间复杂度:O(log2n),n个元素每次分为一半,如n,n/2,n/4,....n/2^k,其中k就是循环的次数n/2^k取整后>=1,即令n/2^k=1,可得k=log2n,(是以2为底,n的对数),所以时间复杂度可以表示O(h)=O(log2n);
空间复杂度为数组空间大小,是一个常数,与变量n的取值无关。所以空间复杂度为O(1)。
心得体会:在做题的时候,算法是没有问题的,主要是因为函数没有返回值,陷入了死循环,这次做题让我知道了返回值的的主要性。
标签:取整 元素 大小 心得 描述 strong n个元素 查找 循环
原文地址:https://www.cnblogs.com/xm-dream/p/9827728.html