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)