参考:点击打开链接 点击打开链接
1.冒泡排序:改进:(1)设置一个标志位检测是否发生数据交换,如果没有发生数据交换,直接完成排序,这样才有可能 达到O(n)的时间复杂度。
(2)传统冒泡排序中每一趟排序操作只能找到一个最大值或最小值,我们考虑利用在每趟排序中进行正向和 反向两遍冒泡的方法一次可以得到两个最终值(最大者和最小者) , 从而使排序趟数几乎减少了一半。
2.选择排序:改进:(1)选择排序,每趟循环只能确定一个元素排序后的定位。我们可以考虑改进为每趟循环确定两个元素(当 前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环即可。
(2)堆排序其实是一种树形选择排序,是对直接选择排序的有效改进。
3.插入排序:改进:(1)希尔排序是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。
|