快速排序(Quick Sort)是一种分治的排序算法。它会选择数组中的一个元素作为枢轴(pivot),然后将数组中所有其他元素与该枢轴元素进行比较,按照顺序将其放在枢轴的两边。
以下是使用 Python 实现快速排序的代码:
# 快速排序函数
def quickSort(arr, low, high):
if low < high:
# 找到枢轴的正确位置
pi = partition(arr, low, high)
# 对左右子数组分别进行递归排序
quickSort(arr, low, pi - 1)
quickSort(arr, pi + 1, high)
# 分治函数,用于确定枢轴的正确位置
def partition(arr, low, high):
pivot = arr[high]
i = (low - 1)
for j in range(low, high):
if arr[j] <= pivot:
i += 1
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[high] = arr[high], arr[i + 1]
return (i + 1)
# 测试示例
arr = [10, 80, 30, 90, 40, 50, 70]
n = len(arr)
quickSort(arr, 0, n - 1)
print("排序后的数组:")
for item in arr:
print(item)
这段代码实现了快速排序的程序,其平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。在这段代码中,我们首先使用quickSort
函数来递归地对数组进行排序。然后,partition
函数用于确定枢轴的正确位置,并将比枢轴小的元素放在左边,比枢轴大的元素放在右边。最后,我们使用一个示例数组来测试快速排序算法,并输出排序后的结果。
希望这段代码能够帮助到你,如果你还有其他疑问,请随时向我提问。😄