快速排序 (Quick Sort) 是常用的排序算法之一,其主要思想是通过选择一个基准元素,将数组分成两个子数组,一个子数组中的所有元素都小于基准元素,另一个子数组中的所有元素都大于基准元素,然后递归地对两个子数组进行排序,直到整个数组有序。下面是一个简单的快排算法实现:

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    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(nlogn),其中 n 表示数组的长度。由于快排算法是一种原地排序算法,它不需要额外的空间,因此空间复杂度为 O(1)。


原文地址: http://www.cveoy.top/t/topic/lHq2 著作权归作者所有。请勿转载和采集!

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