码迷,mamicode.com
首页 > 编程语言 > 详细

算法第2章上级实践报告

时间:2018-10-22 01:10:41      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:取整   元素   大小   心得   描述   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)

心得体会:在做题的时候,算法是没有问题的,主要是因为函数没有返回值,陷入了死循环,这次做题让我知道了返回值的的主要性。

 

算法第2章上级实践报告

标签:取整   元素   大小   心得   描述   strong   n个元素   查找   循环   

原文地址:https://www.cnblogs.com/xm-dream/p/9827728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!