查找与排序算法方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.2 折半查找
如果从文件中读取的数据记录的关键字是有序排列的, 则可以用一种效率更高的查找方法来查找文件中的记录,这 就是折半查找法,又称为二分搜索。
折半查找的基本思想是:减小查找序列的长度,分而治 之地进行关键字的查找。它的查找过程是:先确定待查找记 录的所在的范围,然后逐渐缩小查找的范围,直至找到该记 录为止(也可能查找失败)。
2.1 顺序查找
如果一个文件具有n个连续的记录,可将该文件读到内 存中的一个顺序表中进行各种操作。顺序查找就是在文件的 关键字集合key[1,2,...,n]中找出与给定的关键字key相等的文 件记录。如图2-2所示,磁盘中有这样一个顺序文件。对文 件中记录的查找就是对其关键字的查找,找到了关键字就找 到了该关键字对应的那条记录。
直接插入排序的基本思想是:第i趟排序将序列中的第 i+1个元素ki&) 中的合适的位置,使得插入后的序列仍然保持按值有序。
2.5 选择排序
选择排序(selection sort)也是一种比较常见的排序方法。它 的基本思想是:第i趟排序从序列的后n-i+1(i=1,2,…,n-1)个元 素中选择一个最小的元素,与该n-i+1个元素的最前面那个元素 进行位置交换,也就是与第i个位置上的元素进行交换,直到 i=n-1。直观地讲,每一趟的选择排序就是从序列中未排好顺序 的元素中选择一个最小的元素,将该元素与这些未排好顺序的 元素的第一个元素交换位置。
2.3 排序的概述
对于文件而言,排序可以理解为:根据文件记录的关键 字的值的递增或者递减关系将文件的记录的次序进行重新排 列的过程。排序后的文件记录一定是按关键字值有序排列的 。例如最开始从磁盘中读出的文件如图2-5所示。
2.4 直接插入排序
直接插入排序(Straight Insertion Sort)是一种最为简单 的排序方法,因此也被称为简单插入排序。
人有了知识,就会具备各种分析能力, 明辨是非的能力。
所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。
”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力;
通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣;
通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。
2.6 冒泡排序
冒泡排序(bubble sort)是最为常用的一种排序方法。它 是一类具有“交换”性质的排序方法。冒泡排序的基本思想 可描述如下。
将序列中的第1个元素与第2个元素进行比较,若前者大 于后者,则将第1个元素与第2个元素进行位置交换,否则不 交换。
再将第2个元素与第3个元素进行比较,同样若前者大于 后者,则将第2个元素与第3个元素进行位置交换,否则不交 换。
希尔排序的基本思想是:设定一个元素间隔增量gap,将 参加排序的序列按这个间隔数gap从第1个元素开始依次分成若 干个子序列。
2.8 快速排序
快速排序(quick sort)是由C.A.R Hoarse提出的一种排序 算法,它是冒泡排序的一种改进算法。由于快速排序算法元素 之间的比较次数较少,速度较快,因而得名快速排序。在各种 内部排序方法中,快速排序被认为是目前最好的一种排序方法 。
依此类推,直到将第n-1个元素与第n个元素进行比较为 止。
2.7 希尔排序
希尔排序(Shell’s sort)又称为“缩小增量排序 ”(Diminishing Increment Sort),是由希尔在1959年提出的。 希尔排序是对插入排序的一种改进,在效率上较前面所讲的几 种排序方法有较大改进。
快速排序算法的基本思想是:在当前的排序序列 (k1,k2,…kn)中任意选取一个元素,把该元素称为基准元素或 支点,把小于等于基准元素的所有元素都移到基准元素的前面 ,把大于基准元素的所有元素都移到基准元素的后面,这样使 得基准元素所处的位置恰好就是排序的最终位置,并且把当前 参加排序的序列划分为前后两个子序列。
第二章 查找与排序
在文件系统中,经常要对文件的记录进行各种各样的操作, 主要包括:
文件的查找:对用户指定的文件中的记录进行查找,也称为 检索。
插入记录:将一个新的记录插入到文件的指定位置。 记录的删除:从文件中删除指定的记录。 文件的排序:对文件中的记录按指定的关键字的顺序进行排 序。 修改文件的记录:修改文件中记录的内容,并更新。
相关文档
最新文档