python学习4---实现快速排序
1、QuickSort
1 def Rand_Partition(A,p,r): 2 """ 3 划分数组的元素下标q 4 :param A: 数组 5 :param p: 数组左边界 6 :param r: 数组右边界 7 :return: q 8 """ 9 i=random.randint(p,r) 10 A[i], A[r]=A[r],A[i] 11 x=A[r] 12 i=p-1 13 for j in range(p,r): 14 if A[j]<=x: 15 i=i+1 16 A[i], A[j]=A[j],A[i] 17 A[r], A[i+1]=A[i+1],A[r] 18 return i+1 19 20 def QuickSort(A,p,r): 21 """ 22 快速排序算法 23 :param A:待排序的数组 24 :param p: 待排数组的左 25 :param r: 待排数组的右 26 :return: 27 """ 28 if p<r: 29 q=Rand_Partition(A,p,r) 30 QuickSort(A,p,q-1) 31 QuickSort(A,q+1,r)