写一个快速排序
以下是一个快速排序的 Python 代码实现:
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
在这个实现中,我们首先检查输入的数组长度是否小于等于 1,如果是的话就直接返回该数组。否则,我们选择数组的第一个元素作为枢轴(pivot)。
接下来,我们遍历数组中的每个元素,将它们与枢轴进行比较。如果它比枢轴小,就将它加入到左侧子数组中;否则,就将它加入到右侧子数组中。
最后,我们递归地对左右子数组进行快速排序,并将它们与枢轴拼接起来,得到排好序的数组。
这个实现的时间复杂度为 O(n log n),和其他快速排序实现一样
原文地址: https://www.cveoy.top/t/topic/cfQv 著作权归作者所有。请勿转载和采集!