- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
直接插入一趟插入方法 若 xlist[j],则 L.list[j+1]=L.list[j] ; j - - ; 直到 x=list[j] 或 j0 为止, L.list[j+1]=x 快速排序的过程: 首先从待排序区间中选取一个元素(一般选取该区间的第一个元素)作为比较的基准元素,通过从区间两端向中间顺序进行比较和交换,把每次在前面单元中碰到的大于等于基准元素排序码的元素同在后面单元中碰到的小于等于基准元素排序码的元素交换其值,使得前面单元元素的排序码比基准元素小,后面单元元素的排序码比基准元素大。当所有元素都比较过一遍后,把基准元素交换到前后两部分单元的交界处(即排序后基准元素的最终位置),然后再对前后两个子区间分别进行上述过程。 快速排序中,把待排序区间按照第一个元素(基准元素)的排序码分为前后(或称左右)两个区间的过程称为一次划分。 45 53 18 36 72 30 48 93 15 36 快速排序中进行一次划分的过程示例 45 36 53 15 72 45 30 注意:一次划分中最后的 i 或者等于 j , 或者等于 j+1 。 void QuickSort ( ElemType A[ ] , int s , int t ) { int i= s ; j= t+1 ; ElemType x= A[s] ; do { do i + + ; while ( A[ i ].stn x.stn ) ; do j - - ; while ( A[ j ].stn x.stn ) ; if ( i j ) { ElemType temp=A[ i ] ; A[ i ]=A[ j ] ; A[ j ]=temp ; } } while ( i j ) ; A[s]=A[ j ] ; A[ j ]=x ; if (s j-1 ) QuickSort ( A , s , j –1 ) ; if (j+1 t ) QuickSort ( A , j+1 , t ) ; } 快速排序算法 30 36 18 36 15 45 48 93 72 53 快速排序的过程示例 18 15 30 36 36 15 18 36 36 48 53 72 93 53 72 快速排序是不稳定的 分析 快速排序中,若把每次划分所用的基准元素看作根结点,把划分得到的左区间和右区间看作为根结点的左子树和右子树。那么整个排序过程就对应一棵具有n个元素的二叉搜索树,所需划分的层数就等于对应二叉搜索树的高度减 1 ,所需划分的所有区间数等于对应二叉搜索树中分支结点数。 21 25 49 25 16 08 0 1 2 3 4 5 pivot 21 25 25 16 49 08 pivot pivot 21 08 25 21 25 49 划分的层数等于对应二叉搜索树的高度减1 区间数等于对应二叉搜索树的分支结点数 * * 第九章 排序 二、 选择排序 三、 交换排序 四、 归并排序 一、 排序的基本概念 9.1 排序的基本概念 排序(sorting) 排序域 (排序项).stn 排序码 递增的有序表称为升序表(正序表) 递减的有序表称为降序表(逆序表) 稳定排序 不稳定排序 内部排序方法大致可分为下列几种类型: 插入排序 交换排序 选择排序 归并排序 分配排序 内部排序与外部排序 简单排序、堆排序的方法 简单排序、堆排序的过程是一个逐步扩大记录的有序序列长度的过程。 经过一趟排序 有序序列区 无 序 序 列 区 有序序列区 无 序 序 列 区 插入排序是稳定的 排序方法:将待排序的 n 个元素看作一个有序表和一个无序表,开始时有序表只有一个元素,无序表中包含有 n-1 个元素,以后每次从无序表中取出第一个元素,把它插入到有序表中的合适位置,使之成为一个新的有序表,经过 n-1 次后,排序结束。 插 入 排 序 void InsertSort ( ElemType A[ ] , int n)
您可能关注的文档
最近下载
- 全南2019年招聘中小学幼儿园教师工作方案.doc VIP
- 《教师职业道德》教师职业道德概述.pptx VIP
- 2025年湛江中心人民医院医护人员招聘参考题库含答案解析.docx VIP
- 2025年湛江市中心人民医院医护人员招聘参考题库附答案解析.docx VIP
- 在线网课学习课堂《Advanced Medical English(首都医大 )》单元测试考核答案.docx VIP
- 青岛科技大学四方校区物业管理服务公开招标.doc VIP
- Delta影像组学在急性外踝韧带损伤修复疗效预测中的应用.docx VIP
- 黄炎培创业大赛 路演ppt(获奖).pptx VIP
- 2024年版《陕西省园林绿化工程消耗量定额》.pdf VIP
- 2024版食堂工作培训ppt课件 .pdf VIP
文档评论(0)