1 / 10
文档名称:

c语言程序设计(排序算法).docx

格式:docx   大小:140KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言程序设计(排序算法).docx

上传人:mazhuangzi1 2022/8/3 文件大小:140 KB

下载得到文件列表

c语言程序设计(排序算法).docx

相关文档

文档介绍

文档介绍:c语言程序设计(排序
算法)
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
学号
2014-2015学年第2学期
高级语言程序设计》
课程设计报告
: : 教: : 级 名 导 说该数列已经排序完成。这个算法的名字由来是因为越大的元素会 经由交换慢慢“浮”到数列的顶端,故名。
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数 放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数 放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如 此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将 最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2 个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大 数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二 趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二 大的数)。如此下去,重复以上过程,直至最终完成排序。用二重循环实现, 外循环变量设为i,内循环变量设为j。假如有10个数需要进行排序,则外循环 重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与 内循环j有关的,它们可以分别用a[j]和a[j+1 ]标识,i的值依次为1,2,...,9,对 于每一个i,j的值依次为1,2,...10-i。冒泡排序算法的性能
选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放 在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳 定的排序方法。
基本思想:
n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结
果:
初始状态:无序区为R[1..n],有序区为空。
第1趟排序在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序 区的第1个记录R[1 ]交换,
使R[1..1 ]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少
1个的新无序区。……③
第i趟排序第i趟排序开始时,当前有序区和无序区分别为R[1..i-1 ]和R(1
WiW n-1)。
该趟排序从当前无序区中选出关键字最小的记录R[k],将它与无序区的第1 个记录R交换,
使R[1..i]和R分别变为记录个数增加1个的新有序区和记录个数减少1个 的新无序区。
这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有 序结果。
选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每 次进入的第二层循环之前,
将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这 个最小位置处的元素更小的
元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如 果临时变量改变,则说明,
有比当前外层循环位置更小的元素,需要将这两个元素交换
插入排序
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一 个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方 法--插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序 数据中,从而得到一个新的、个数加一的有序数据