134. 选择排序
时间限制:1000 MS 内存限制:64 MB
题目描述
## 题目描述 排序是处理很多问题的预处理部分。之前的题目中,数值范围比较小,通过记录每个数值出现的次数,再按照数值从小到大,该数值出现多少次,就输出多少个。 这种方法,不适用于数值范围很大的情况,因为数组无法开。不能开出 $A[100000000]$ 这样 $1$亿 大小的数组,数组的总大小要控制在几千万以内。 除了计数排序,还有很多种排序方法。下面来介绍一种简单的排序算法,选择排序。 选择排序的思想是: > 从前往后依次得到每个位置上的数。对于第 $i$ 个位置,在 $[i+1,n]$ 这些位置中,找到一个最小值,记录它的位置 $k$。把 $A[i]$ 和 $A[k]$ 的值进行交换。 ## 输入格式 第一行一个整数 $n$,表示要排序的数个数。 第二行 $n$ 个元素,表示待排序的元素。 ## 输出格式 输出 $n$ 个数字,表示排序后的数字。 ## 数据范围 $1 \le n \le 1000$, 序列中的元素范围 $[-1000000,1000000]$ ## 输入 ```in1 5 -1 2 1 4 3 ``` ## 输出 ```out1 -1 1 2 3 4 ``` ## 提示