快速排序是一种高效的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
以下是使用Python实现快速排序的代码:
def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right) # 测试 arr = [3,6,8,10,1,2,1] print(quick_sort(arr))
在这段代码中,我们首先检查输入的数组长度是否小于等于1,如果是,那么直接返回数组,因为长度为1的数组已经是有序的,然后我们选择一个基准值(这里选择数组中间的元素),并将数组分为三部分:小于基准值的元素、等于基准值的元素和大于基准值的元素,我们对小于基准值和大于基准值的部分递归地进行快速排序,然后将结果拼接在一起。
这个算法的时间复杂度为O(n log n),空间复杂度为O(log n)。
还没有评论,来说两句吧...