import random
import time
def quickSort(arr,lo,hi):
if lo>=hi : return
else:
index=partition(arr,lo,hi)
quickSort(arr,lo,index-1)
quickSort(arr,index+1,hi)
def partition(arr,lo,hi):
key=arr[lo]
left=lo+1
right=hi
while(True):
while (arr[left]<=key):
if (left==hi) :break
left+=1
while(key<arr[right]):
if(right==lo):break
right-=1
if left>=right: break
else: swap(arr,left,right)
swap(arr,lo,right)
return right
def swap(arr,i,j):
temp=arr[i]
arr[i]=arr[j]
arr[j]=temp
def test1():
arr=[random.randint(0,99) for _ in range(0,15)]
print(arr)
quickSort(arr,0,len(arr)-1)
print(arr)
def test2():
arr=[random.randint(0,50000) for _ in range(0,50000)]
start=time.time()
print("start:",start)
quickSort(arr,0,len(arr)-1)
end =time.time()
print("end:",end)
print("cost time:",end-start)
if __name__=="__main__":
# test1()
test2()
test1():
[21, 26, 65, 19, 77, 49, 60, 38, 59, 71, 13, 84, 85, 73, 47]
[13, 19, 21, 26, 38, 47, 49, 59, 60, 65, 71, 73, 77, 84, 85]
test2():
start: 1710576524.1946692
end: 1710576524.2853882
cost time: 0.09071898460388184 seconds