排序算法是计算机科学中的重要主题之一,它用于对一组元素进行按照特定顺序重新排列的操作。在排序算法中,时间复杂度是一个重要的衡量指标。在这篇文章中,我们将介绍一种时间复杂度为 O(n log n) 的排序算法,并提供相应的源代码实现。
快速排序(Quicksort)是一种高效的排序算法,其时间复杂度为 O(n log n)。它采用了分治的思想,将原始数组分成较小的子数组,然后递归地对子数组进行排序。快速排序的基本思想是选择一个元素作为基准(通常选择数组的第一个元素),将数组分为两个子数组:小于基准的元素和大于基准的元素。然后对这两个子数组分别进行快速排序,最后将两个子数组合并起来即可。
下面是快速排序的源代码实现:
def quicksort(arr):
if len