# coding=utf-8
from imooc.dataStructure.two.RandomTestcase import *
def quickSort(arr,n):
__quickSort(arr,0,n-1)
def __quickSort(arr,l,r):
if l >= r:
return
p = __partition(arr,l,r)
__quickSort(arr,l,p-1)
__quickSort(arr,p+1,r)
def __partition(arr,l,r):
v = arr[l]
'''j的位置是小于v的部分,包括j'''
j = l
for i in range(l+1,r+1):
if arr[i] < v:
'''i的位置属于小于v的部分,需要将j+1的元素和i位置的交换位置'''
arr[j+1],arr[i] = arr[i],arr[j+1]
j+=1
'''最后将j的位置和最左边的元素交换位置,保证arr[l...j-1]<v,arr[j+1...r]>v'''
arr[j],arr[l] = arr[l],arr[j]
return j
arr = generateRandomArray(100000,0,1000000)
quickSort(arr,len(arr))
print(arr)
快速排序
最新推荐文章于 2021-04-14 12:48:45 发布