Python实现排序算法:快速排序、冒泡排序、插入排序、选择排序、堆排序、归并排序和希尔排序
Python实现快速排序
原理
首先选取任意一个数据(通常选取数组的第一个数)作为关键数据,然后将所有比它小的放到它前面,所有比它大的放到它后面,这个过程称为一趟快速排序
快速排序原理图如下:
实现
#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)