之前我们知道,二分查找依赖数组的随机访问,所以只能用数组来实现。如果数据存储在链表中,就真的没法用二分查找了吗?而实际上,我们只需要对链表稍加改造,就可以实现类似“二分”的查找算法,这种改造之后的数据结构叫作 跳表(Skip List) 。 1. 何为跳表? 对于一个单链表,即使链表是有序的,如果我 ...
分类:
编程语言 时间:
2018-10-29 14:46:16
阅读次数:
348
python基础篇(五) 算法初识 什么是算法 二分查找算法 什么是算法 二分查找算法 ?一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大量计算机资源,而且耗时,这个时候就有人对这类计算编写了一些策略,这些策略就 ...
分类:
编程语言 时间:
2018-10-25 00:25:35
阅读次数:
261
题目:二分查找 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 感想:其实这道题很简单的,只需要给二分查找的比较算法中添加一个简单的计数器就可以了,但要注意这个计数器必须放在二 ...
分类:
编程语言 时间:
2018-10-22 01:18:21
阅读次数:
194
实践题目: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、实践题目: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