主要思想是:每次把待排序数组分为两部分,左边小于轴右边大于轴,把分开的数组的收尾数组的索引存到辅助栈空间里,替换递归。两种思路:
思路一:严老师数据结构里面的思路
def partition(nums,low,high):
high_flag = True
low_flag = False
pivot = nums[low]
while low < high and low < len(nums) and high < len(nums):
if high_flag:
if nums[high] < pivot:
nums[low] = nums[high]
high_flag = False
low_flag = True
else:
high -= 1
if low_flag:
if nums[low] > pivot:
nums[high] = nums[low]
high_flag = True
low_flag = False
else:
low += 1
nums[low] = pivot
print(low