实践题目:7-1二分查找(20分) 问题描述:输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数 算法描述:求取序列的中位数,比较查找数x与中位数的大小,中位数比查找数x大,截取中位 ...
分类:
编程语言 时间:
2018-10-22 01:10:41
阅读次数:
125
1.实践题目:7-1 二分查找 2、题目描述:在a[n]数组中使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 3、算法描述 4、算法时间及空间复杂度分析:利用二分递归查找找出X的下标,同时每进入一次递归,比较次数加1,这样空间复杂度为1,(并没有额 ...
分类:
其他好文 时间:
2018-10-22 00:06:53
阅读次数:
149
第一道题: 第一道题要求输出查找次数,一开始我们小组用了两个二分查找算法来实现一个返回下标,一个返回计数器的值。但后来经过老师指点,我们采取了全局变量,来作为计数器,其值也是查找次数。 第二道题: 第二道题要求找不到目标的时候可以返回最邻近的两个值的下标,所以我们又添加了i和j,在每次进行大小比较之 ...
分类:
编程语言 时间:
2018-10-22 00:05:20
阅读次数:
113
对二分法的学习体会以及关于结对编程的体验分享 1) 二分搜索技术 a) 顺序搜索方法:逐个比较a[0: n-1]中元素,直至找出元素或搜索整个数组后确定x不在其中。该方法没有很好地利用n个元素已排好序这个条件,因此在最坏的情况下,顺序搜索方法需要O(n) 次比较。 b) 二分搜索方法:将n个元素分成 ...
分类:
其他好文 时间:
2018-10-22 00:02:46
阅读次数:
238
1、实践题目:7-1 2、问题描述:使用二分查找算法在n个非降序排列的整数中查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 3、算法描述:将n个元素分成个数大致相同的两半,取a[mid]与x比较。如果x=a[mid],则找到x,算法终止;如果x<a[mid],则只 ...
分类:
其他好文 时间:
2018-10-22 00:00:40
阅读次数:
182
1.实践题目:7-1 二分查找 2.问题描述:输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 3.算法描述: 将n个元素分成个数大致相同的两份,取a[n/2]与x比较。 若x= ...
分类:
编程语言 时间:
2018-10-21 21:58:58
阅读次数:
208
阅读目录 1. 顺序查找 2. 二分查找 3. 插值查找 4. 斐波那契查找 5. 树表查找 6. 分块查找 7. 哈希查找 阅读目录 1. 顺序查找 2. 二分查找 3. 插值查找 4. 斐波那契查找 5. 树表查找 6. 分块查找 7. 哈希查找 查找是在大量的信息中寻找一个特定的信息元素,在计 ...
分类:
编程语言 时间:
2018-10-21 21:50:44
阅读次数:
208
时间复杂度:二分查找是将数组 array 从中间切成大致相等的两部分,取 array[n/2] 与key做比较,如果 x==a[n/2] ,则找到 key 。因为每次规模都小一半,最多找了 k 次,则 2^k = n, k = log n,时间复杂度为O(log n)。 空间复杂度:本题变量不会随着 ...
分类:
编程语言 时间:
2018-10-21 20:36:03
阅读次数:
174
一、实践题目 改写二分搜索算法 二、问题描述 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 三、算法描述 依然采用了二分搜索算法的大部分代码,然后进行了简单修 ...
分类:
编程语言 时间:
2018-10-21 17:52:31
阅读次数:
181
一、对二分法思想的体会 1.二分法是运用分治策略的典型例子,也称折半查找,充分利用了元素间的次序关系,是一种效率较高的查找方法。实现二分算法有递归和非递归两种方式。 2.基本思想:将n个元素分成大致相同的两半,取a[n/2]与x作比较。如果x=a[n/2],则找到x,算法终止;如果a<[n/2],则 ...
分类:
其他好文 时间:
2018-10-21 16:55:43
阅读次数:
168