python快排算法

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列

 1 def kp(arr,i,j):
 2      if i < j:
 3         base = kpgc(arr,i,j)
 4         kp(arr,i,base)
 5         kp(arr,base+1,j)
 6 def kpgc(arr,i,j):
 7     base = arr[i]
 8     while i < j:
 9         while i < j and arr[j] >= base:
10             j -= 1
11         while i < j and arr[j] < base:
12             arr[i] = arr[j]
13             i += 1
14             arr[j] = arr[i]
15     arr[i] = base
16     return i
17 
18 lst=[11,2323,54,543,5,53,45]
19 kp(lst,0,len(lst)-1)
20 print (lst)
posted @ 2016-06-14 10:42  小秒  阅读(387)  评论(0编辑  收藏  举报