本文主要是介绍python 原地快速排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#核心部分
def partition(arr, low, high):i = low #最初的pivot位置pivot = arr[high] # 取最后一个元素当做pivotfor j in range(low, high):# 当前元素小于或等于 pivotif arr[j] <= pivot:arr[i], arr[j] = arr[j], arr[i]i = i + 1 #pivot位置前进1步arr[i], arr[high] = arr[high], arr[i] #将pivot放到正确的位置并返回位置索引ireturn i# arr[] --> 排序数组
# low --> 起始索引
# high --> 结束索引# 快速排序函数
def quick_sort(arr, low, high):if low < high:pi = partition(arr, low, high)quick_sort(arr, low, pi - 1)quick_sort(arr, pi + 1, high)arr = [1,10, 2,7, 8, 9, 1, 5]
quick_sort(arr, 0, len(arr)-1)
print(arr)
这篇关于python 原地快速排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!