what
- 3-way quick sort: partition into 3 segments
implementation
def quick_sort(l, r):
if l >= r:
return
start, end = l, r
pivot = nums[l]
m = l +
i = m
while m <= r:
if nums[m] > pivot:
nums[m], nums[r] = nums[r], nums[m]
r -= 1
elif nums[m] < pivot:
nums[m], nums[l] = nums[l], nums[m]
l += 1
m += 1
else:
m += 1
return l, r