请使用排序算法对n个数据进行降序排列,n的值和数据的值通过键盘输入 。 【输入形式】使用input()函数输入n的值和n个数据的值。 【输出形式】使用print()函数输出降序排序后的数据。 【样例输入】第一个输入n的值,如3代表3个数据排序,第二行往后分行输入n个数据的值,如从第二行开始依次输入3个数据13、6、18,具体格式如下所示: 3 13 6 18 【样例输出】将排序后的n个数在同一行上依次输出,数据间用英文逗号分隔,如下所示: 18,13,6
时间: 2023-12-10 17:39:37 浏览: 89
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)
n = int(input())
data = []
for i in range(n):
data.append(int(input()))
sorted_data = quick_sort(data)[::-1]
print(",".join(str(x) for x in sorted_data))
```
首先,我们定义了一个名为 `quick_sort` 的函数,它接受一个数组作为参数,并使用快速排序算法对其进行排序。在这个函数中,我们首先检查数组的长度是否小于等于1,如果是,则返回该数组本身。否则,我们选择数组中间的元素作为枢轴(pivot),然后将数组分成三个部分:比枢轴大的元素、等于枢轴的元素和比枢轴小的元素。接下来,我们对左右两个部分递归地调用 `quick_sort` 函数,然后将它们和等于枢轴的元素连接起来得到排序后的数组。
接下来,我们从标准输入中读取 `n` 和 `n` 个数据,并将它们存储在一个名为 `data` 的数组中。然后,我们使用 `quick_sort` 函数对 `data` 数组进行排序,并将其倒序输出,最后用英文逗号将它们连接起来输出。
阅读全文