给定n个整数,请按照从小到大的顺序排序。 输入格式: 第一行数字n,1<=n<=100000 第二行n个整数,以一个空格分隔 输出格式: 从小到大排序后的数字,以一个空格分隔
时间: 2024-09-07 12:04:48 浏览: 67
c代码-输入三个整数x,y,z,请把这三个数由小到大输出。
5星 · 资源好评率100%
这是一个常见的基础算法问题,可以使用多种排序算法来解决,例如冒泡排序、选择排序、插入排序、快速排序或归并排序等。这里以快速排序为例,它的时间复杂度通常为O(n log n),是一个高效的算法:
1. **快速排序**:
- 从数组中选择一个元素作为"基准"(pivot)。
- 将所有小于基准的元素移动到基准左边,大于基准的元素移动到右边。这个过程称为分区操作。
- 对基准左右两边的子数组递归地重复以上步骤。
以下是伪代码形式的实现过程:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = [x for x in arr[1:] if x < pivot]
right = [x for x in arr[1:] if x >= pivot]
return quick_sort(left) + [pivot] + quick_sort(right)
# 示例
n = int(input())
numbers = list(map(int, input().split()))
sorted_numbers = quick_sort(numbers)
print(' '.join(str(num) for num in sorted_numbers))
```
阅读全文