排序

本文讲数组的排序,排序复杂度分为O(n²)和O(nlogn)。
其中:O(n²)的算法有:
插入排序:维护已经排好序的部分,插入需要重新维护(交换内部位置)
选择排序:内部循环标记出位置,进行交换,只交换一次。
O(nlogn)的算法有:
归并排序:维护左右两部分分别有序,然后使用merge函数合并为整体有序,需要借助辅助数组空间。
快排:挑选一个元素作为标点,把数组划分为小于和大于的区域;需注意标点的选取(如果取第0个,在有序情况下会退化,栈溢出);相等元素处理(如果全部相等,算法退化,栈溢出,二路快排,三路快排)

你可能感兴趣的:(排序)