1、二分查找(Binary Search) 二分查找又称折半查找,它是一种效率较高的查找方法。 二分查找要求:线性表是有序表,即表中结点按关键字有序,并且表的存储结构为顺序结构。不妨设有序表是递增有序的。2、二分查找的基本思想二分查找算法思想:(1)首先确定该区间的中点位置: mid = ( l.....
分类:
编程语言 时间:
2014-10-18 01:53:51
阅读次数:
376
设有一个序列a[0],a[1]...a[n];其中a[i-1]前是已经有序的,当插入时a[i]时,利用二分法搜索a[i]插入的位置
效率:O(N^2),对于初始基本有序的序列,效率上不如直接插入排序;对于随机无序的序列,效率比直接插入排序要高
/*
* 二分(折半)插入排序
* 设有一个序列a[0],a[1]...a[n];其中a[i-1]前是已经有序的,当插入时a[i]时,利用二分法搜索...
分类:
编程语言 时间:
2014-10-17 13:51:24
阅读次数:
186
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。折半查找法的两种实现折半查找法思想:在有序表中,把待查找数据值与查找范围的中间元素值进行比较..
分类:
移动开发 时间:
2014-10-14 03:57:08
阅读次数:
185
/**查找(数组)1> 顺序查找 : 就是遍历数组每一个元素同该元素比较,但是问题是效率比较低2> 折半查找 : 条件是数组必须是有顺序的*/#include #define n 2int main(){ // 折半查找 /* 思路:将该元素同中间元素比较,如果有则存在,否则,判断该元...
分类:
编程语言 时间:
2014-10-12 20:10:18
阅读次数:
180
一、静态查找 顺序的查找 有序表查找 平均查找长度: 特点1、折半查找 log(n+1)-1 ...
分类:
其他好文 时间:
2014-10-06 17:39:40
阅读次数:
233
采用优先队列把一个普通线性表改造成赫夫曼树,再进行赫夫曼编码,得到一个同时记录了明文和对应编码的密码本。使用优先队列(最小堆)构造赫夫曼树是一种高效的方法,比每次都遍历整个线性表要快很多。我在构造密码本时确保密码本数组递增排序,这样每次插入新结点时可以折半查找插入,效率较高。有序的密码本在把明文编码成密文时也可以大大提高查找效率。...
分类:
其他好文 时间:
2014-09-28 16:14:43
阅读次数:
319
求最大公约数的Euclid算法需要用到大量的取模运算,这在大多数计算机上是一项复杂的工作,相比之下减法运算、测试数的奇偶性、折半运算的执行速度都要更快些。二进制最大公约数算法避免了Euclid算法的取余数过程。二进制最大公约数基于下述事实:若a、b都是偶数,则gcd(a,b)=2*gcd(a/2,b...
分类:
其他好文 时间:
2014-09-28 03:13:30
阅读次数:
191
Cable master
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 24292
Accepted: 5200
Description
Inhabitants of the Wonderland have decided to hold a region...
分类:
其他好文 时间:
2014-09-24 23:45:18
阅读次数:
201
如果静态查找表是一个有序表,则可以使用折半查找。
折半查找的过程是:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。折半查找过程是以处于区间中间位置记录的关键字和给定值比较,若相等,则查找成功,若不等,则缩小范围,直至新的区间中间位置记录的关键字等于给定值或者查找区间的大小小于零时(表明查找不成功)为止。
关键字key与...
分类:
其他好文 时间:
2014-09-24 22:40:38
阅读次数:
213
Cable master
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 24292
Accepted: 5200
Description
Inhabitants of the Wonderland have decided to hold a region...
分类:
其他好文 时间:
2014-09-24 22:05:38
阅读次数:
190