数据结构-程序员联合开发网.ppt
《数据结构-程序员联合开发网.ppt》由会员分享,可在线阅读,更多相关《数据结构-程序员联合开发网.ppt(37页珍藏版)》请在三一办公上搜索。
1、第三章 内部排序算法,3.1 直接插入排序 3.2 希尔排序 3.3 冒泡排序 3.4 快速排序 3.5 简单选择排序 3.6 归并排序,分类:内部排序:全部记录都可以同时调入内存进行的排序。外部排序:文件中的记录太大,无法全部将其同时调入内存进行的排序。,内 部 排 序,插入排序,交换排序,选择排序,归并排序,基数排序,有序表中插入元素,并保持其有序,将表中关键字比较,位置不对交换,先查找关键字,再交换。,将两个有序的关键字序列进行归并,不比较,按多关键字排序方法,直接,折半,2-路,表,希尔,冒泡,快速,简单,树型,堆,3.1 直接插入排序直接插入排序排序过程:整个排序过程为n-1趟插入,
2、即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序,例,49 38 65 97 76 13 27,i=2 38(38 49)65 97 76 13 27,i=3 65(38 49 65)97 76 13 27,i=4 97(38 49 65 97)76 13 27,i=5 76(38 49 65 76 97)13 27,i=6 13(13 38 49 65 76 97)27,i=1(),i=7(13 38 49 65 76 97)27,27,97,76,65,49,38,27,typedef struct int key;float info;JD
3、;void straisort(JD r,int n)int i,j;for(i=2;i=n;i+)r0=ri;j=i-1;while(r0.keyrj.key)rj+1=rj;j-;rj+1=r0;,3.2 希尔排序(缩小增量法)排序过程:先取一个正整数d1n,把所有相隔d1的记录放一组,组内进行直接插入排序;然后取d2d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止,思考:算法的代码实现?,3.3冒泡排序排序过程将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r1.keyr2.key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和
4、第n个记录比较为止第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录上对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止,例,38,49,76,97,13,97,27,97,30,97,13,76,76,76,27,30,13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,1 2 3 4 5 6 7 8,void bubble_sort(JD r,int n)int m,i,j,flag=1;JD x;m=n-1;while(m0),
5、注:冒泡排序等价与沉底算法,3.4快速排序基本思想:通过一趟排序,将某关键字通过比较直接到位,并将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序,排序过程:对rst中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=rs,x=rp.key初始时令i=s,j=t首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换重复上述两步,直至i=j为止再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止,完成一趟排序:(27 38
6、 13)49(76 97 65 50),分别进行快速排序:(13)27(38)49(50 65)76(97),快速排序结束:13 27 38 49 50 65 76 97,49,27,49,65,13,49,49,97,x.key=49,完成一趟排序:(27 38 13)49(76 97 65 50),27,65,13,49,97,void qksort(JD r,int s,int t)int i,j,k;JD x;if(s=t)return;i=s;j=t;x=ri;while(i=x.key)j-;if(ij)ri=rj;i+;while(ij),3.5 简单选择排序排序过程首先通过n-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 程序员 联合开发
链接地址:https://www.31ppt.com/p-6578846.html