快排是python经典算法之⼀。
1、下⾯讲解的是什么是快排和快排的图⽰。
2、快排是⼀种解决排序问题的运算⽅法。
3、快排的原理:在数组中任意选择⼀个数字作为基准,⽤数组的数据和基准数据进⾏⽐较,⽐基准数字打的数字的基准数字的右边,⽐基准数字⼩的数字在基准数字的左边,
第⼀次排序之后分为⽐基准数据⼤或⽐基准数据⼩两个部分,⽤刚开始的⽅法继续排序,直到每个排序分组中只有⼀个数据或没有数据为⽌。
4、下⾯以[ 7 91 23 1 6 3 79 2 ]数组为例⼦,进⾏快排运算。
5、选基准:选择数组⾥的第⼀个数字(可以选择任意数字)为基准数字
6、从j指针开始和基准数据⽐较之后,其中2⽐7⼩,所以将2排到7的左边。此时进⾏了交叉移动,所以下⼀个⽐较的是i指针对应的数据。
7、i指针与基准数据7⽐较,其中91⽐7⼤,所以将91排到右边,此时⼜⼀次进⾏了交叉移动,所以下⼀个⽐较的是j指针对应的数据。
8、j指针与基准数据7⽐较,其中79⽐7⼤,所以将79排到右边,此时是同侧移动,所以下⼀个⽐较的是j指针对应的数据。
9、j指针与基准数据7⽐较,其中3⽐7⼩,所以将3排到左边,此时⼜⼀次进⾏了交叉移动,所以下⼀个⽐较的是i指针对应的数据。
10、i指针与基准数据7⽐较,其中23⽐7⼤,所以将23排到右边,此时⼜⼀次进⾏了交叉移动,所以下⼀个⽐较的是j指针对应的数据。
11、j指针与基准数据7⽐较,其中6⽐7⼩,所以将6排到左边,此时⼜⼀次进⾏了交叉移动,所以下⼀个⽐较的是i指针对应的数据。
12、i指针与基准数据7⽐较,其中1⽐7⼩,所以将1排到右边,此时所有的数据都进⾏了⼀次排序。
13、第⼀趟排序之后的结果如下。根据上⾯的⽅法,基准数据的左右两侧继续快排,直到数组没有数据或数组数据为0
14、最后的排序结果如下图所⽰:
因篇幅问题不能全部显示,请点此查看更多更全内容