中等
技术面试0 次浏览

编写一个函数,实现对一个整数数组进行排序,要求时间复杂度为 O(n log n)。

后端工程师
CodingSortingAlgorithm

答题要点

可以使用快速排序算法来实现对整数数组的排序,其平均时间复杂度为 O(n log n)。快速排序的基本思想是分治法,通过选择一个基准元素,将数组分为两部分,小于基准的元素放在左边,大于基准的元素放在右边,然后递归地对左右两部分进行排序。以下是使用 Python 实现的代码: 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] sorted_arr = quick_sort(arr) print(sorted_arr) 在上述代码中,首先判断数组长度是否小于等于 1,如果是则直接返回数组。然后选择中间元素作为基准,将数组分为左、中、右三部分,最后递归地对左右两部分进行排序并合并结果。