python实现快排算法(quicksort)

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现快排算法(quicksort)相关的知识,希望对你有一定的参考价值。

python实现快排算法(quicksort)

 

快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归或者非递归进行,以此达到整个数据变成有序序列。

 

快速排序由C. A. R. Hoare在1960年提出,是冒泡排序的一种改进。快速排序就跟它的名字一样,效率很快。跟冒泡排序,选择排序相比,它们使用相同的空间大小,但是,快速排序却可以达到O(nlogn)的时间复杂度,比O(n^2)要快上很多。那么,快速排序是怎么做的呢?它的核心思想是,找到一个基准数,让这个基准数到它该去的位置。并且,基准数左边的数都比这个它要小,右边的数都比它要大。根据这个思想,我们每一趟至少能够保证基准数在它应该在的位置,并且右边的数都大于左边的数,整体基本有序。那怎么处理基准数左边和右边两部分的数呢?很简单,分别对左边和右边递归刚刚那个过程,就ok了。这就是快速排序,由于每次都能够排好一个数,并且能够保证左边区域的数只需要在左边区域排序,右边区域的数只需要在右边区域排序,它们本身在该在位置的概率很大,大大降低了需要交换的次数。

 

See the source image

快排的步骤:

1、从数列中

以上是关于python实现快排算法(quicksort)的主要内容,如果未能解决你的问题,请参考以下文章

八大排序算法Java实现(下)-快排归排基数排序

SeniorSort 之 QuickSort

P2-2017级算法第二次上机 A ModricWang‘s Real QuickSort Query

QuickSort快速排序的多种实现

快排为什么比归并快?

快排为什么比归并快?