题目描述
给定n个元素的数组,请使用选择排序对其进行排序(升序)。
(如果有多个相同的最小值,以下标最大的为准)
输入格式
两行,第一行为一个整数n,表示元素的个数。
第二行n个空格分隔的整数,表示数组的各个元素。
输出格式
n-1行,每一行为一次选择之后的结果。
样例输入
4 4 3 2 1
样例输出
1 3 2 4 1 2 3 4 1 2 3 4
问题提示
说明:n<=1000,数组元素保证在int范围内。
#include <iostream>
using namespace std;
int n;
int a[10010];
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int index = 0;
for(int i=0; i<n;i++)
{
int temp = i;
for(int j=index;j<n;j++)
{
if(a[temp]>a[j])
{
temp = j;
}
}
swap(a[temp],a[i]);
index++;
if(index==n)
{
break;
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
return 0;
}