快速排序-左/中/右为基准实现
python 版本
def msort_right(arr,low,high):
if low >=high:
return arr
mid = parright(arr,low,high)
msort_right(arr,low,mid-1)
msort_right(arr,mid+1,high)
return arr
def msort_left(arr,low,high):
if low >=high:
return arr
mid = parleft(arr,low,high)
msort_left(arr,low,mid-1)
msort_left(arr,mid+1,high)
return arr
def parleft(arr,low,high):
"""
以最左边的值为基准
:param arr:
:param low:
:param high:
:return:
"""
base = arr[low]
while low < high:
while arr[high] >= base and low < high:
high -= 1
arr[low] = arr[high]
while arr[low] < base and low < high:
low += 1
arr[high] = arr[low]
arr[low] = base
return low
def parright(arr,low,high):
"""