核心在于双指针op要对称,在大的宏观层面上调整数据的输入,否则会陷入麻烦不断的边界问题
N = int(input())
sequence = list(map(int, input().split()))
def quick_sort(my_list, left, right):
if left < right:
i = left - 1
j = right + 1
mid = my_list[(i + j) // 2]
while i < j:
while 1:
i += 1
if my_list[i] >= mid: break
while 1:
j -= 1
if my_list[j] <= mid: break
if i < j:
my_list[i], my_list[j] = my_list[j], my_list[i]
quick_sort(my_list, left, j)
quick_sort(my_list, j + 1, right)
quick_sort(sequence, 0, N - 1)
print(' '.join(list(map(str, sequence))))