import random
def rand(n):
for i in range(n):
yield random.randint(0,1000)
#創建一個隨機數列表
def createList(n):
lists=[]
for i in rand(n):
lists.append(i)
return lists
#挖坑法高速排序
def quick_sort(lists,l,r):
if(l<r):
#x是選取的pivot基准值,然後把數據大於基准值的排到右邊。小於基准值的排到左邊
i,j,x=l,r,lists[l]
while(i<j):
#j從右邊開始遍歷,找到j<x的地方,並跟lists[i]交換。
while(i<j and lists[j]>=x):
j-=1
if(i<j):
lists[i]=lists[j]
i+=1
#i從左邊開始遍歷,找到j>x的地方。並跟lists[j]交換
while(i<j and lists[i]<=x):
i+=1
if(i<j):
lists[j]=lists[i]
j-=1
#此時,i已經大於等於j了。也就是說i左邊的都小於x,右邊都大於x,所以如今把i填入x,接下來就遞歸排序
lists[i]=x
quick_sort(lists,l,i-1)
quick_sort(lists,i+1,r)
lists=createList(1000)
print lists
quick_sort(lists,0,len(lists)-1)
print lists