快速排序算法的原理

  • Post author:
  • Post category:其他


快速排序的算法原理是冒泡排序的一中改进版,是不稳定的,平均/最好时间复杂度为0,元素基本有序最坏的时间复杂度0,空间复杂度0.

首先选择一个基本的准元素,通过一趟排序将要排序的数据分割成独立的两部分,一部分全部小于等于基准元素,一部分全部大于等于基准元素,再按照此方法递归对则这两部分数据进行快速排序。

快速排序的一次次划分从两头交替搜索,直到low 和hig指针重合,一趟时间复杂度0,整个算法的时间复杂度与规划趟数有关。

最好情况是每个划分选择的中间数恰好将当前的序列等分,经过趟化分便可得到长度为1的子表,这样复杂度哦。

最坏的情况是每次所选中间数是当前序列中的最大化,或i这是最小元素,这使得每次的划分所得子表其中一个为空表,这样的长度为n的数据表需要n躺划分,整个排序时间复杂度O。



版权声明:本文为weixin_48221244原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。