📅  最后修改于: 2023-12-03 15:28:48.543000             🧑  作者: Mango
本题为算法题,需要实现一个快速排序算法。
给定一个无序数组,按照从小到大的顺序进行排序。
第一行为一个正整数n,表示数组的元素个数。
接下来n行,每行一个整数,表示数组的元素。
输出排好序的数组,每个元素之间用空格隔开。
10
1
8
6
2
3
9
4
7
10
5
1 2 3 4 5 6 7 8 9 10
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)
n = int(input())
arr = []
for i in range(n):
arr.append(int(input()))
arr_sorted = quick_sort(arr)
print(' '.join([str(x) for x in arr_sorted]))
以上为Python代码实现快速排序算法,时间复杂度为O(nlogn)。可以通过以下步骤进行排序:
使用#号表示标题,#的数量表示标题的级别。
段落之间空一行即可。
使用``符号包含代码块。
使用*或+或-表示无序列表,数字符号表示有序列表。
使用显示文字表示链接,使用表示图片。