- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
希尔排序 算法分析 开始时 gap 的值较大, 子序列中的记录较少, 排序速度较快 随着排序进展, gap 值逐渐变小, 子序列中记录个数逐渐变多,由于前面大多数记录已基本有序, 所以排序速度仍然很快 Gap的取法有多种。 shell 提出取 gap = ?n/2?,gap = ?gap/2?,直到gap = 1。 选择排序 排序过程: 首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数 交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上 再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换—第二趟选择排序 重复上述过程,共经过n-1趟排序后,排序结束 选择排序 排序实例: 例 初始: [ 49 38 65 97 76 13 27 ] k j i=1 13 49 一趟: 13 [38 65 97 76 49 27 ] i=2 27 38 二趟: 13 27 [65 97 76 49 38 ] 三趟: 13 27 38 [97 76 49 65 ] 四趟: 13 27 38 49 [76 97 65 ] 五趟: 13 27 38 49 65 [97 76 ] 六趟: 13 27 38 49 65 76 [97 ] k k k k j j j j j j j j j j 选择排序 选择排序是通过每一趟排序过程中从待排序记录中选择出关键字最小(大)的记录,将其依次放在数据表的最前或最后端的方法来实现整个数据表的有序排列。 选择排序 算法实例: 21 25 25* 16 08 0 1 2 3 4 5 49 25 16 08 25* 49 21 i = 1 i = 2 08 16 25* 25 21 初始 49 49 i = 3 08 16 25* 25 21 排序的稳定性 21 25 25* 16 08 49 21 25 25* 16 08 49 21 25 25* 16 08 49 排序的稳定性 稳定的排序算法 冒泡排序 直接插入排序 不稳定的排序算法 快速排序 希尔排序 选择排序 本章总结 排序算法 冒泡排序 直接插入排序 快速排序 希尔排序 选择排序 排序算法的稳定性 阶段小节 几种常见的排序算法 冒泡排序的特点 快速排序的特点,一趟排序的子过程 实验 题目 题目:实现对数组{265,301,751,129,937,863,742,694,076,438}进行排序,用快速排序方法来实现。并列出每趟排序的结果 冒泡排序 算法实例 21 25 25* 16 08 0 1 2 3 4 5 21 25* 49 25 16 49 chang=1 08 25* chang=1 08 16 chang=1 25* 25 21 49 21 25 16 08 49 本章总结 数据结构与算法初步 常见的排序算法 重点讲述冒泡排序和快速排序的特,同时大概了解直接插入排序,希尔排序和选择排序的基本思路 实验1 题目 题目:实现对数组{265,301,751,129,937,863,742,694,076,438}进行排序,用快速排序方法来实现。并列出每趟排序的结果 实验目的 考察快速排序算法的基本思路 了解快速排序算法的每趟操作流程 实验分析 建立一个数组,并初始化 进行数据的第一趟快速排序 了解快速排序每趟操作结果,分析排序快速的最快数组类型和最慢数组类型 本章目标 了解几种常见的排序算法 重点撑握冒泡排序和快速排序 课程目标 本章概述 几种常见排序算法。 本章目标 熟悉常见的查找算法和排序算法 难点 快速排序算法 本章结构 数据结构与算法初步 常见的排序算法 常见的排序算法 冒泡排序 快速排序 直接插入排序 希尔排序 选择排序 冒泡排序 算法描述 设待排序记录序列中的记录个数为n 第i趟起泡排序从[0]到[n-i] 依次比较相邻两个记录的关键字,如果发生逆序,则交换之 每一趟其结果是这n-i个记录中,关键字最大的记录被交换到第n-i的位置
原创力文档


文档评论(0)