常用排序算法的比较(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文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219