龙空技术网

Python 算法 08 -- 快速排序

young十三 408

前言:

而今看官们对“python 快排序”大概比较关切,朋友们都需要知道一些“python 快排序”的相关内容。那么小编也在网上收集了一些对于“python 快排序””的相关内容,希望咱们能喜欢,看官们一起来了解一下吧!

快速排序

1、快速排序的思想

① 先从数列中取出一个数(可以是第一个数,也可以是最后一个数,还可以是中间的数,本示例以第一个数)作为基准数

② 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边

③ 再对左右区间重复第二步,直到各区间只有一个数

2、分析

将下列数组从小到大排序

待排序数组

● 当数组为空或者只有一个数组的时候

不需要排序

● 当数组中有 2 个元素时

检查第一个元素是否比第二个元素小,如果比第二个小,就交换他们的位置


● 当数组中有 3 个元素时

根据“快速排序”的思想,需要将数组分组,直到满足基线条件,首先,从数组中选出第一个元素作为基准值,接下来找出比基准值大的元素以及比基准值小的元素。

这里我们进行了分区,得到的两个数组是无序的,但是如果这两个数组是有序,对整个数组排序将变得非常容易。


如果子数组是有序的,就可以按下面合并成新的有序数组

左边的数组+基准值+右边的数组

quicksort(2,1)+基准值[5]+quicksort([])

>>> 1 2 5

3、方案

>>>Python 算法 07 -- 归并排序的奥秘

标签: #python 快排序 #快速排序算法 python #python快速排序原理