排序二——交换排序

冒泡排序

  从后往前(或者从前往后)两两比较,逆序则交换,每趟确定一个元素,且该元素下次不再交换。

  空间复杂度:交换元素的时候用的,O(1)

  时间复杂度:如果本趟元素没有发生交换,则说明已经有序。最好的情况下是 O(n),平均是 O(n2)。

  稳定性:稳定

快速排序

  思想:分治,重点在分。取一个pivot,通过一趟排序分成两部分,每趟确定一个元素。

  时间:平均是 o(nlogn),最坏情况:基本有序。

  空间效率:快速排序是递归的,需要借助一个递归工作栈来保存每层递归调用的信息,平均O(log2N)

  时间复杂度:运行时间与划分是否对称有关。所以基本有序或者基本逆序,都是最好的情况。

  优化:1)头尾中间三个元素取中间

       2)规模较小时候,改用直接插入

  稳定性:不稳定。

原文地址:https://www.cnblogs.com/juanzhi/p/12766825.html