如果静态查找表是一个有序表,则可以使用折半查找。
折半查找的过程是:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。折半查找过程是以处于区间中间位置记录的关键字和给定值比较,若相等,则查找成功,若不等,则缩小范围,直至新的区间中间位置记录的关键字等于给定值或者查找区间的大小小于零时(表明查找不成功)为止。
关键字key与...
分类:
其他好文 时间:
2014-09-24 22:40:38
阅读次数:
213
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。...
分类:
移动开发 时间:
2014-09-19 12:04:15
阅读次数:
157
所谓折半查找,又称二分查找,是一种在有序数组中查找某一特定元素的搜索算法。优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元...
分类:
其他好文 时间:
2014-09-18 20:21:44
阅读次数:
265
今天大鹏哥跟大家一起学习下插入排序中的直接插入排序。
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
算法描述:
Step1、将待排序的一组记录中的第1个记录拿出来作为一组有序的记录(当然此时该组记录仅有1个记录)。
Step2、依次将待排序的一...
分类:
其他好文 时间:
2014-09-15 15:57:39
阅读次数:
170
“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。无论是顺序存储还是链表存储结构,都可在O(m+n)的时间量级上实现。
归并排序又是一类不同的排序方法。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个为2或1的有序子序列;再两两归并,....... ,如此重复,直至得到一个长度为n的有序序列为止。
初始关...
分类:
其他好文 时间:
2014-09-13 09:23:54
阅读次数:
185
二分查找又称折半查找,优点是比较次数少,查找速度快;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
该算法要求:
1、 必须采用顺序存储结构。
2、 必须按关键字大小有序排列。
该算法时间复杂度最坏为:O(logn)
注意点有mid、low、high...
分类:
编程语言 时间:
2014-09-12 17:17:23
阅读次数:
179
直接插入排序基本思想:有一列数,把待排数字插入到前面已排好的数字序列中。比如 n个数做直接插入排序 56,14,45,69,42,8,10开始时有序表中只包含一个元素,无序组中有n-1个元素有序表无序表5614,45,69,42,8,10从无...
分类:
编程语言 时间:
2014-09-12 11:45:23
阅读次数:
197
归并的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表中含有n个记录,则可以看成是n个有序的字表,每个表的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序表;再两两归并,......如此重复,直到合并成一个长度为n的有序表为止,这种方法称为2-路归并排序。(图片来源)算法实...
分类:
其他好文 时间:
2014-09-09 17:58:29
阅读次数:
162
1 实验4 链表其它操作 2 实验目的 3 1.熟悉对单链表的一些其它操作。 4 2.掌握循环链表和双链表的一些操作,理解与单链表操作的不同。 5 实验内容 6 程序1 7 设单链表L是一个非递减有序表,写一算法将x插入其中后仍保持L的有序性。 8 设计要求:在程序中构造三个子程序分别为 9 L.....
分类:
其他好文 时间:
2014-09-09 10:51:49
阅读次数:
295
1 /* 2 * 归并排序递归实现 3 * 简介:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。 4 * 然后再把有序子序列合并为整体有序序列 5 * 时间复杂度为O(nlogn) 6 * 7 * */ 8 9 import...
分类:
其他好文 时间:
2014-09-07 14:48:05
阅读次数:
239