📜  适用于QuickSort的Python程序(1)

📅  最后修改于: 2023-12-03 15:28:21.091000             🧑  作者: Mango

QuickSort Python程序

本文介绍的是适用于QuickSort的Python程序,QuickSort(快速排序)是一种常见的基于比较的排序算法。它的平均时间复杂度是O(nlogn),最差时间复杂度是O(n^2),空间复杂度是O(logn)。

算法思路

快速排序是一种分治算法,它的基本思路是将一个大的问题分成较小的子问题来解决。具体步骤如下:

  1. 选择一个元素作为基准(通常是第一个元素)

  2. 将数组中小于基准的元素移动到基准的左边,将大于基准的元素移动到基准的右边

  3. 对基准左右的两个子数组分别递归应用步骤1和步骤2

  4. 递归结束之后,数组已经有序

代码实现

下面是适用于QuickSort的Python程序的代码实现:

def quicksort(array):
    if len(array) < 2:
        return array
    else:
        pivot = array[0]
        left = [x for x in array[1:] if x <= pivot]
        right = [x for x in array[1:] if x > pivot]
        return quicksort(left) + [pivot] + quicksort(right)
代码解析

这段代码中,quicksort函数接收一个数组作为参数,如果数组的长度小于2,直接返回这个数组。否则,选择第一个元素作为基准(pivot),将小于等于基准的元素放到左边,大于基准的元素放到右边,然后再对左右两个子数组递归应用quicksort函数,将左右两个子数组排好序之后再将它们和基准值拼接起来返回。

测试

我们可以使用以下代码测试quicksort函数:

print(quicksort([3, 1, 4, 1, 5, 9, 2, 6, 5]))

输出应该是:

[1, 1, 2, 3, 4, 5, 5, 6, 9]
总结

本文介绍了适用于QuickSort的Python程序,给出了代码实现和测试方法。如果您有任何问题或建议,请在评论中告诉我们。