python版本的快速排序, 经典算法, 话不多说, 代码搞起:
#!/usr/bin/python import random class QuickSort(): def Partition(self, A, p, r): x = A[r] i = p - 1 for j in range(p, r): if A[j] <= x: i = i + 1 A[i], A[j] = A[j], A[i] A[i+1], A[r] = A[r], A[i+1] return i + 1 def Quick_Sort(self, A, p, r): if p < r: q = self.Partition(A, p, r) self.Quick_Sort(A, p, q-1) self.Quick_Sort(A, q+1, r) def main(): test_case = [1, 5, 10, 9, 12] a = QuickSort() a.Quick_Sort(test_case, 0, len(test_case)-1) print test_case if __name__ == '__main__': main()
算法的关键部分是Partition过程,它实现了对子数组A[p..r]的重排