#1085. 选择排序

选择排序

Description

首先在未排序序列中找到最小或最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小或最大元素,然后放到已排序序列的末尾。重复此步骤,直到所有元素全部排序完毕。 image.png

选择排序的比较操作为 n(n1)÷2n(n-1)\div2 次之间,赋值操作介于 003(n1)3(n-1)次之间。比较次数O(n2O(n^2),比较次数与关键字的初始状态无关,总的比较次数N=(n1)+(n2)+...+1=n×(n1)÷2N=(n-1)+(n-2)+...+1=n\times(n-1)\div 2。交换次数 O(n)O(n),最好情况是,已经有序,交换00次;最坏情况交换n1n-1次,逆序交换n÷2n\div2次。交换次数比冒泡排序少多了,nn 值较小时,选择排序比冒泡排序快

输入NN个整数,将它们从小到大排队后输出。

Input Format

第一行输入一个整数NN

第二行输入NN个整数aia_i

【约定】 1N1000,0ai1091 \leq N \leq 1000,0 \leq a_i \leq 10^9

Output Format

输出排序好的NN个数。

5
6 3 5 7 0
0 3 5 6 7