以下是一个快速排序的 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录