版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课件内部排序第一讲2004年12月第十章内部排序插入排序:直插入排序,希尔排序交换排序:冒泡排序,霍尔快速排序选择排序:简洁选择排序,堆排序归并排序基数排序§10-1排序的基本概念一、排序:将若干数据元素构成的一个随意序列,重新排成按关键字有序序列的过程。二、关于排序的稳定性:若排序之前Ki=Kj,并且Ri领先Rj(i<j),排序后仍Ri领先于Rj,则排序是稳定的,否则排序是不稳定的。三、排序方法分类:1内排序:在内存进行;2外排序:在内存进行,同时访问外存;§10-1排序的基本概念四、存储结构:依次存储结构,常称为表。#defineMAXSIZE30;/*表中记录的个数*/Typedefstruct{intkey;/*或其他类型*/.../*其他次关键字域*/}ElemType;typedefElemTypelisttp[MAXSIZE];§10-2插入排序一、干脆插入排序:思路:通过不断的将某记录插入到一个已经有序的表中来实现。有一组关键字{49,38,76,27,49};
i=2(49)38,76,27,49┏━┛
i=3(38,49),76,27,49
i=4(38,49,76),27,49┏━━━━━┛i=5(27,38,49,76),49┏━┛
end.(27,38,49,49,76)-干脆插入排序算法voidstraisort(listtpr);{for(i=2;i<=n;i++)
{r[0]=r[i];/*设置监视哨*/
j=i-1;k=r[i].key;while(r[j].key>k)/*大值的记录后移*/
{
r[j+1]=r[j];j--;
}
r[j+1]=r[0];/*插入位置*/
}
}/*straisort*/
-干脆插入排序算法算法分析:排序是稳定的;原来:(49,38,76,27,49)排序后:(27,38,49,49,76)
排时间困难度为:T(n)=O(n2)§10-3交换排序一、起泡排序(由小到大)思路:第1趟aj与aj+1比,较大数=>aj+1(j=1,...n-1)
第2趟aj与aj+1比,较大数=>aj+1(j=1,...n-2)
第n-1趟a1与a2比,较大数=>a2(j=1,n-(n-1))一、起泡排序(由小到大)算法描述:(1)voidbuble_sort(listtpr){for(i=1;i<=n-1;i++)
/*共计n-1趟*/
for(j=1;j<=n-i;j++)if(r[j].key>r[j+1].key)
{
x=r[j];r[j]=r[j+1]r[j+1]=x;}
}/*bubble_sort*/
起泡排序实例图示:
排序表长度n=8初始状态第1趟后第2趟后第3趟后第4趟后第5趟后第6趟后4938383838131338494949132727
656565132738389776132749
4949
76132749
49
49
49132749
65656565
2749
7676767676
49
97
9797979797起泡排序改进方法(2)Voidbubble_sort2(listtpr){i=1;
do{
bool=1;
for(j=1;j<=n-i;j++)if(r[j].key>r[j+1].key)
{
x=r[j];r[j]=r[j+1];r[j+1]=x;bool=0;
}
i++;
}while(bool==0&&i<=n-1);
}/*bubble_sort2*/当某一趟仅有比较而多数据交换,表明序列已经有序。可以结束排序过程。起泡排序算法分析时间困难度:一般状况下:T(n)=0(n2)当原始序列有序是:T(n)=0(n)起泡排序算法是稳定的。
排序算法小结:干脆插入排序稳定,时间困难度为:0(n2)
交换排序的起泡排序是稳定,一般,时间困难度为:0(n2)当原始序列有序,时间困难度为:0(n)上一讲内容回顾
排序基本概念插入排序干脆插入排序稳定T(n)=O(n2)希尔排序不稳定T(n)=n1.3交换排序起泡排序稳定T(n)=O(n2)原表有序时T(n)=O(n)本讲内容交换排序起泡排序稳定T(n)=O(n2)快速排序不稳定T(n)=O(n.log2n)选择排序简洁选择排序稳定T(n)=O(n2)堆排序不稳定T(n)=O(n.log2n)§10.3交换排序二、霍尔快速排序
存储结构:依次存储结构,常称为表。#defineMAXSIZE30;/*表中记录的个数*/Typedefstruct{intkey;/*或其他类型*/.../*其他次关键字域*/}ElemType;typedefElemTypelisttp[MAXSIZE];1.霍尔快速排序思路(1)以r[1].key为枢轴,经过比较将:
r[1],r[2],………,r[n]分成两个子表:
[.....ki.....]k1[.....kj.....],左子表关键字<k1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理面试题目及答案评分标准表
- 财务兼职劳务协议书
- 2025年戴维南定理考试题及答案
- 高一生物必修一教案模板(2025-2026学年)
- 英女王演讲稿
- 清税业务代理协议书
- 2026年中国尿石症管理装项目经营分析报告
- 2026年中国牧群检验项目经营分析报告
- gsm协议书哪个国家的
- 2026年中国蜜蜂项目经营分析报告
- 南京理工大学紫金学院《机器学习》2023-2024学年第二学期期末试卷
- 护士长如何做好科室人员培训
- 宏观经济学(河海大学)知到智慧树章节测试课后答案2024年秋河海大学
- 2025年01月中国科学院上海生命科学研究院分子细胞卓越中心王露组公开招聘科研助理/助研/副研3人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 《古玩鉴赏课程》课件
- 河南省郑州市行知中学、一八联合国际学校、南塘中学等联考2024-2025学年九年级上学期期中物理试卷
- 苏教版四年级上册数学直线、射线和角的认识省公开课获奖课件市赛课比赛一等奖课件
- 私人住宅自建房房屋施工承包合同
- 尿常规课件教学课件
- 3.1 贯彻新发展理念 课件高中政治统编版必修二经济与社会-1
- 形势与政策补考2-国开(XJ)-参考资料
评论
0/150
提交评论