题目描述
完善程序:
输入N个整数,使用插入排序法从小到大输出。
#include<bits/stdc++.h> using namespace std; int N; int a[100010]; int main() { freopen("1456.in","r",stdin); freopen("1456.out","w",stdout); cin >> N; for (int i=1; i <= N; i++) //输入数组 cin >> a[i]; a[0]= -10000001; //添加一个“哨兵” for (int i=1; i ____ N ; i++) //新数位置 { int temp=a[i]; //取当前的新数---(A) int j; for (j=i-1; a[j] > temp; j--) //找到适当位置。---(B) ________; //---(C) a[____]=temp; } for (int i=1; 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
我的代码:
#include<bits/stdc++.h>
using namespace std;
int n,t,s[1009];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i];
s[0]=-1;
for(int i=1;i<=n;i++)
{
t=s[i];
for(int j=i-1;j>=0;j--)
{
if(s[j]>t)s[j+1]=s[j];
else
{
s[j+1]=t;
break;
}
}
}
for(int i=1;i<=n;i++)cout<<s[i]<<" ";
return 0;
}