首先选取任意一个数据(通常选取数组的第一个数)作为关键数据,然后将所有比它小的放到它前面,所有比它大的放到它后面,这个过程称为一趟快速排序
快速排序原理图如下:

#coding=utf-8
#python实现快速排序
def quick_sort(li,start,end):
if start < end:
flag = li[start]
print(flag)
i = start
j = end
print ("i=%d;j=%d" %(i,j))
b = True
while(i < j):
while(li[j] >= flag and j > i):
j = j -1
li[i] = li[j]
while(li[i] <= flag and j > i):
i = i+ 1
li[j] = li[i]
li[i] = flag
print(li)
quick_sort(li, start, i-1)
quick_sort(li, j+1, end)
if __name__ == "__main__":
li = [30,40,60,10,20,50]
quick_sort(li,0,len(li) - 1)发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120202.html原文链接:https://javaforall.cn