题目描述
完善程序:
输入N个整数,使用选择排序法从小到大输出。
#include<bits/stdc++.h> using namespace std; int N; int a[100010]; int main() { freopen("1455.in","r",stdin); freopen("1455.out","w",stdout); cin >> N; for (int i=0; i < N; i++) cin >> a[i]; for (int i=N-1; i > 0; i--) { int maxx = 0; //最大值开始假设在第0位 for (int j=1; j <= i; j++) //扫描找最大值 if (a[j] > _____ ) _____ ; //记录大值的位置 swap(_____,_____); //把最大值交换到后面 } for (int i=0; i < N; i++) cout << a[i] << " "; return 0; }
输入格式
第一行1个正整数:N,范围在[1,1000]。
第二行N个整数,每个整数范围在[0,1000000]。
输出格式
一行N个从小到大的整数。
输入/输出例子1
输入:
4
5 3 6 1
输出:
1 3 5 6
My Code:
#include<bits/stdc++.h>
using namespace std;
int n,a[1009],s;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n-1;i++)//从a[1]开始枚举,到a[n-1]结束
{
for(int j=i+1;j<=n;j++)//从a[i+1]到a[n]结束
{
if(a[i]>a[j])//i是前面的数,j是后面的数
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
}
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}