简述过程:
1.设置标准值为列表第一个prime = lst【0】
2.设置指针cur1 和 cur2,初始位置的索引分别为0和len(lst)-1(cur1和cur2描述的是索引index)
指针2 从列表后方向前遍历 找到比标准值小或者和标准值相等时停下
指针1遍历的范围由指针2约束 即 只在(0,cur2)之中运动当指针所对的值大于标准值时停下
3.交换cur1和cur2的值
4.当cur2为0时说明一次循环结束
def quick_sort(lst):
tracker = True
while tracker:
prime = lst[0]
cur2 = len(lst) - 1
cur1 = 0
for i in range(len(lst)-1, -1, -1):
if lst[i] <= prime:
cur2 = i
break
if cur2 == 0: # 结束循环
tracker = False
break
for g in range(1, cur2):
if lst[g] > prime:
cur1 = g
break
lst[cur1], lst[cur2] = lst[cur2], lst[cur1]
return lst
lst = [6, 2, 4, 6, 5, 9]
print(quick_sort(lst))
有错误或者有更好的实现方法,希望大家告诉我!!!