python-快速排序
一、快排原理:
1、在列表中选择一个元素作为基准(通常选择第一个数作为基准)。
2、将比基准数大的放基准数右边,比基准数小的放基准数左边(这是升序排列,降序排列反过来就行),所有的元素和基准数比较完以后,第一轮排序完成。
3、把第一轮排序基准值左边和右边的元素看成两个新的列表,递归进行排序。直到被分割的元素只有一个或为零时,排序完成。
例:
原始列表
5 | 6 | 9 | 0 | 4 | 2 | 6 | 8 | 5 | 4 | 7 | 1 | 3 | 4 | 5 |
---|
第一次排序
4 | 3 | 1 | 0 | 4 | 2 | 4 | 5 | 5 | 8 | 7 | 6 | 9 | 6 | 5 |
---|
第二次排序
2 | 3 | 1 | 0 | 4 | 4 | 4 |
---|
5 | 8 | 7 | 6 | 9 | 6 | 5 |
---|
结果:
2 | 3 | 1 | 0 | 4 | 4 | 4 | 5 | 5 | 8 | 7 | 6 | 9 | 6 | 5 |
---|
第三次排序
0 | 1 | 2 | 3 |
---|
4 | 4 |
---|
5 | 7 | 6 | 6 | 8 | 9 |
---|
结果:
0 | 1 | 2 | 3 | 4 | 4 | 4 | 5 | 5 | 7 | 6 | 6 |
---|