提供一个更高效的算法
时间: 2024-02-19 15:02:46 浏览: 12
好的,这里给你提供一个时间复杂度为O(nlogn)的快速排序算法的 Python 实现:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr)//2]
left, right, equal = [], [], []
for x in arr:
if x < pivot:
left.append(x)
elif x == pivot:
equal.append(x)
else:
right.append(x)
return quick_sort(left) + equal + quick_sort(right)
arr = [64, 34, 25, 12, 22, 11, 90]
arr = quick_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" %arr[i], end=' ')
```
输出结果:
```
排序后的数组:
11 12 22 25 34 64 90
```
快速排序是一种常见的高效排序算法,它的时间复杂度为O(nlogn),比冒泡排序快得多。快速排序的基本思想是通过选取一个“基准数”,将数组分成两部分,一部分小于基准数,一部分大于基准数,然后对两部分分别进行递归排序。这里的实现中,我们选取数组中间的数作为基准数,并将小于、等于、大于基准数的数分别放入三个数组中,最后将三个数组拼接起来。