快速排序算法-python实现

 1 #-*- coding: UTF-8 -*-
 2 import numpy as np
 3 
 4 def Partition(a, i, j):
 5     x = a[i]                                            #将数组的第一个元素作为初始基准位置
 6     p = i                                                #同时记录下该元素的位置
 7     while i < j:
 8         while i < j  and a[j] >= x:
 9             j -= 1
10         while i < j and a[i] <= x:
11             i += 1
12         if i != j:
13             a[i], a[j] = a[j], a[i]                 #交换a[i]与a[j]
14     a[p], a[i] = a[i], a[p]                      #将a[p]与a[i]进行交换
15     p = i                                              #得到分隔位置
16 
17     return p
18 
19 def QuickSort(a, i, j):
20     if i < j:
21         p = Partition(a, i, j)
22         QuickSort(a, i, p-1)
23         QuickSort (a, p+1, j)
24 
25 if __name__ == '__main__':
26 
27     a = np.random.randint(0, 100, size = 100)
28     print "Before sorting..."

29     print "---------------------------------------------------------------"
30     print a
31     print "---------------------------------------------------------------"
32     QuickSort(a, 0, a.size - 1)
33     print "After sorting..."
34     print "---------------------------------------------------------------"
35     print a
36     print "---------------------------------------------------------------"
原文地址:https://www.cnblogs.com/biaoyu/p/4831623.html