Problem A: 选择排序

Problem A: 选择排序

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

输入  和  个  到  的整数,然后将这些数字从小到大排序。

然后输出交换次数。

注意:如果两个数大小相同,那么不要交换它们。

思路:

进行n次大循环。i大循环中:

用小循环寻找数列中i的元素。具体方式:如果后面发现更小的数字,则交换和当前i置的数交换。

#include <iostream>
using namespace std;
______ int maxn = 110; // 定义一个常量
int a[_____], n; // 使用 maxn 常量
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
for (_____; _____; _____) { // i 从 1 循环到 n-1
    for (_____; _____; _____) // j 从 i+1 循环到 n
            if (_____) { // 如果第 i 个数字比第 j 个数字大
                _____ // 交换第 i 个数和第 j 个数
                _____
                _____
            }
    }
    for (int i = 1; i <= n; i++)
        cout << a[i] << " ";
    return 0;
}


Input

共两行,第一行为一个正整数 n,

第二行为 n 个正整数,,


Output

共两行,第一行为  个从小到大排好序了的数。

第二行为选择排序的交换次数。

Sample Input Copy

5
1 10000000 123 2345566 111111

Sample Output Copy

1 123 111111 2345566 10000000
2