算法第二章实践

Posted laborioso

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法第二章实践相关的知识,希望对你有一定的参考价值。

1、实践题目

二分查找

2、问题描述:

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

3、算法描述

(1)由(left+right)/2 求出数组中间那个数据的下标mid

(2)判断下标为mid的数据值与目标值x的关系,相等则找到,不等则判断大小。同时在开始比较时记录增加一次比较次数。

(3)由大小来判断x所在区间,确定后重复上述操作直到x找到或者当left>right时则x不存在。

4、算法时间及空间复杂度分析

二分算法最坏情况要进行log2n次搜索,而递归时间复杂度为O(1),那么时间复杂度为O(log2n)

空间复杂度为O(1)

5、心得

熟悉了二分搜索的条件判断及过程,判断条件是很重要的一环,不然影响了搜索的范围,在递归过程中会不断放大误差。在计算比较次数的时候,思想比较局限在每次比较的条件中有一个++的操作,但其实每次进行递归都必定进行比较,只需要在进行比较前记录一次就足够了,所以程序整体和局部的联系是需要理解清楚的。

 

以上是关于算法第二章实践的主要内容,如果未能解决你的问题,请参考以下文章

算法第二章上机实践报告

实践算法第二章上机实践报告

算法第二章上机实践报告

算法第二章实践报告

算法第二章上机实践报告

算法第二章实践