python排序算法的实现

时间:2022-04-30 03:39:56

1、 算法描述:

1.先从数列中取出一个数作为基准数。

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

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

2、python代码

#!/usr/bin/python
#
-*- coding: utf-8 -*-

def sub_sort(array,low,high):
key
= array[low]
while low < high:
while low < high and array[high] >= key:
high
-= 1
while low < high and array[high] < key:
array[low]
= array[high]
low
+= 1
array[high]
= array[low]
array[low]
= key
return low


def quick_sort(array,low,high):
if low < high:
key_index
= sub_sort(array,low,high)
quick_sort(array,low,key_index)
quick_sort(array,key_index
+1,high)


if __name__ == '__main__':
array
= [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3]
print array
quick_sort(array,0,len(array)
-1)
print array

结果:

[8, 10, 9, 6, 4, 16, 5, 13, 26, 18, 2, 45, 34, 23, 1, 7, 3]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 16, 18, 23, 26, 34, 45]