While 循环的嵌套注意事项
注意事项
当使用双层while循环时,想在不满足外层循环条件时跳出内层循环时需要在内层循环条件添加外层循环条件,如下代码所示,因为当满足while条件时进入while循环体内,在没有中止或退出循环语句的情况下需要至少执行一次循环语句才会再次判断循环条件,因此当low<high 时进入外层循环体,若内层循环条件 未添加 low<high 条件时,可能会出现在内层循环中出现 low>high 的情况,而此时尚未触发外层条件判断,因此可能导致程序出现bug
// quick_sort
def quick_sort(alist, start, end):
"""快排"""
if start >= end:
return
mid = alist[start]
low = start
high = end
while low < high:
while low < high and alist[high] >= mid:
high -= 1
alist[low] = alist[high]
while low < high and alist[low] < mid:
low += 1
alist[high] = alist[low]
alist[low] = mid
quick_sort(alist, start, low-1)
quick_sort(alist, low+1, end)