题目描述
本题目要求读入N个整数,采用简单选择排序法(每轮选最大)进行排序,输出前3轮排序后的结果。
输入格式
输入不超过100的正整数N和N个整数(空格分隔)。
输出格式
输出三行,第一行为第一轮排序结果,第二行为第二轮排序结果,第三行为第三轮排序结果。数据间用一个空格分隔。
为简便起见,最后一个元素后也有一个空格。
输入样例
5
3 4 2 5 1
输出样例
3 4 2 1 5
3 1 2 4 5
2 1 3 4 5
代码
#include <iostream>
using namespace std;
int n, a[100005];
void Selection_Sort()
{
for (int i = 0; i < min(3, n); i++)
{
int max_index = 0;
for (int j = 1; j < n - i; j++)
{
if (a[j] > a[max_index])
{
max_index = j;
}
}
swap(a[max_index], a[n - i - 1]);
for (int k = 0; k < n; ++k)
{
cout << a[k] << " ";
}
cout << endl;
}
}
int main()
{
cin >> n;
for (int i = 0; i < n; ++i)
{
cin >> a[i];
}
Selection_Sort();
return 0;
}