- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 排序;10.1 概述;1.排序(Sorting)
将数据元素(或记录)的任意序列,重新排列成一个按关键
字有序(递增或递减)的序列的过程称为排序。;4.排序方法的稳定和不稳定
若对任意的数据元素序列,使用某个排序方法按关键字进行排序,对原先具有相同键值元素间的位置关系,若排序前与排序后保持一致,称此排序方法是稳定的;反之,则称为不稳定的。;5.待排序记录的三种存储方式
(1)待排序记录存放在地址连续的一组存储单元上。
(2)待排序记录存放在静态链表中。
(3)待排序记录存放在一组地址连续的存储单元,同时另设一个指示各个记录存储位置的地址向量,在排序过程中不移动记录本身,而移动地址向量中这些记录的“地址”,在排序结束后,再按照地址向量中的值调整记录的存储位置。 ;7.外排序
待排序的数据元素量大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序称为外排序。;10.2 插入排序;取要插入的元素,直接插在一个有序序列的合适位置。;排序过程:
将第一个元素 r[1] 作为已排序有序序列;
其他元素r[2],r[3],r[4],r[5],...r[n]作为未排序序列;
循环:
从未排序序列中依次取一个元素;(循环从i=2,3,4,5...)
取一个元素后进行判断:
如果所取元素小于当前有序序列的序尾,则:
(1)将所取元素赋值给r[0], r[0] 当作哨兵。
(2)循环:
在当前有序序列中寻找自己的位置,进行插入:
从当前有序序列的序尾开始,倒着往前,将哨兵与相应元素逐个比较:
哨兵比当前元素小,当前元素就往后移一个位置;再往前比,若哨
兵比当前元素还小,当前元素再往后移一个位置 ...直到哨兵大于
等于当前元素,循环结束,将哨兵插入到当前元素的后面。
如果所取元素大于等于有序序列的序尾,则保持原存储位置不变。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至 5 的元素之中。;e.g: 36、24、10、6、12存放在 r 数组的下标为 1 至 5 的元素之中,用直接插入法将 其排序。结果仍保存在下标为 1 至
文档评论(0)