https://blog.csdn.net/zz709196484/article/details/78747290
python 快速排序
1 def QuickSort(myList,start,end): 2 #判断 开始的下标是否 < 结束的下标,如果为false,直接返回 3 if start < end: 4 i,j = start,end 5 #设置基准数,这时已经腾出了一个坑位i 6 base = myList[i] 7 8 while i < j: 9 #如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现 10 while (i < j) and (myList[j] >= base): 11 j = j - 1 12 13 #如找到,则把第j个元素赋值给第i个元素, 14 if i < j: # 刚好找到了比基准数小的 15 myList[i] = myList[j] 16 i = i + 1 # myList[i] 已经比基准数了,所以前区不需要比较第i个数了,所以i向后移一位 17 18 #同样的方式比较前区 19 while (i < j) and (myList[i] <= base): 20 i = i + 1 21 if i < j: # 刚好找到了比基准数大的数 22 myList[j] = myList[i] 23 j = j - 1 # myList[j] 已经比基准数了,所以后区不需要比较第j个数了,所以j往前移一位 24 25 #做完第一轮比较之后,列表被分成了前后两个区,并且i=j,需要将这个数设置回base 26 myList[i] = base 27 28 #递归前后区 29 QuickSort(myList, start, i - 1) 30 QuickSort(myList, i + 1, end) 31 return myList 32 33 34 myList = [49,38,65,97,76,13,27,49] 35 print("Quick Sort: ") 36 QuickSort(myList,0,len(myList)-1) 37 print(myList)