但时间复杂度仍为O(n^2)
希尔排序:先将待排序列分组,对每组进行直接插入排序,增加数据量重新分组。
快速排序:冒泡排序的改良,先选择一个枢轴,把比他小的数放在前面,比他大的数放在后面,形成两个相对有序的子表,在子表中重复操作,直到最后剩下一个数
时间复杂度约为O(nlog2n)
简单选择排序:每次遍历a[i]到a[n],选出最小数字提前。
时间复杂度也为O(n^2)
树形选择排序:先对n个记录两两比较,再对其中n/2个较小记录比较,如此重复直至选出最小。
归并排序:依次将元素两两归并并排序,然后对归并得到的集合再次进行两两归并后排序...直到只剩下一个集合。
时间复杂度为O(nlog2n)
但空间复杂度为O(n),需要开辟大量辅助存储空间。