手机版

常用排序算法的比较(10)

发布时间:2021-06-07   来源:未知    
字号:

0。0 第一次写了10KB+的代码略感动。 虽然好多都是来源于书本,但理解起来还是略费尽。总之还是很有成就感的!

指针j向前搜索逐个记录与基准值进行比较,直到发现小于基准值的记录为止,将其与枢轴记录相互交换。

指针i向后搜索逐个记录与基准值进行比较,直到发现大于基准值的记录为止,将其与枢轴记录相互交换。

重复上述步骤直到 i = j为止。完成一轮排序,完成一次分割,对前后两个子表按上述原则再分割,知道所有子表的表长不超过1为止。

2.3.6简单选择排序

简单选择排序的基本思想是,首先从序列中选出关键字最小的记录送到最前位置,再从余下的序列中选取关键字最小的记录送到第二的位置,直至寻列中所有的记录都已经选择为止。

SelectSort():

for( i = 1; i <= Num; i++) { min = i; for( j = Num; j > i; j--) { if(p[min] > p[j]) min = j; } p[0] = p[min];//利用p[0]中介交换 p[min] = p[i]; p[i] = p[0]; }

算法:对数组p[],将其从小到大进行排序,首先从p[1],p[2],p[3], ,p[Num]中选择最小值,找到之后,则将它的值与p[1]对换(借助p[0]);然后从p[2],p[3],p[4], ,p[Num]中选择最小值,再将其与p[2]对换。如此进行选择和调换,对第i趟选择排序,进行Num – 1次关键字比较,从Num –i +1个记录中选出关键字最小的记录,并与第i个记录交换。令i从1 至Num-1,进行Num-1趟选择排序,有序序列就此形成。

2.3.7堆排序

堆排序是一种基于选择排序的排序方法。它是一种树形选择排序,利用堆顶记录的关键字最小这一特征,使得在当前无序区中选取最大关键字的记录变得简单。

对任意的p[i(i = 1,2,3 )]都有p[i] >= p[2 *i]并且p[i] >= p[2*i+1]。 它的基本思想是,首先将待排序的记录序列构造成一个堆。此时,选出了堆中所有记录的最小值,然后将它从堆中移走,并将剩余的记录再调整成堆,又找

常用排序算法的比较(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)