排序算法总结

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:03   1099   0

参考:点击打开链接 点击打开链接

1.冒泡排序:改进:(1)设置一个标志位检测是否发生数据交换,如果没有发生数据交换,直接完成排序,这样才有可能 达到O(n)的时间复杂度。

(2)传统冒泡排序中每一趟排序操作只能找到一个最大值或最小值,我们考虑利用在每趟排序中进行正向和 反向两遍冒泡的方法一次可以得到两个最终值(最大者和最小者) , 从而使排序趟数几乎减少了一半。

2.选择排序:改进:(1)选择排序,每趟循环只能确定一个元素排序后的定位。我们可以考虑改进为每趟循环确定两个元素(当 前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环即可。

(2)堆排序其实是一种树形选择排序,是对直接选择排序的有效改进。

3.插入排序:改进:(1)希尔排序是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP