您的位置:首页 > 其它

排序-直接插入排序

2017-11-23 01:00 344 查看

输入格式:

输入第一行给出正整数N(≤10​5​​),随后一行给出N个(长整型范围内的)整数,其间以空格分隔
b839


输出格式:

在一行中输出从小到大排序后的结果,数字间以1个空格分隔,行末不得有多余空格。

输入样例:

11
4 981 10 -17 0 -20 29 50 8 43 -5

输出样例:

-20 -17 -5 0 4 8 10 29 43 50 981

/*
直接插入排序 ٩(*Ӧ)و写的全对
*/
#include<bits/stdc++.h>
using namespace std;
const int MAX = 100010;
int main()
{
int N, j;
int a[MAX];
scanf("%d", &N);
for(int i = 1; i <= N; ++i)
scanf("%d", &a[i]);
//插入排序
for(int i = 2; i <= N; ++i)
{
if(a[i] < a[i - 1])
{
a[0] = a[i];//哨兵
a[i] = a[i - 1];
for(j = i - 2; a[j] > a[0]; --j)
{
a[j + 1] = a[j];
}
a[j + 1] = a[0];
}
}
for(int i = 1; i <= N; ++i)
{
if(i != 1)
printf(" ");
printf("%d", a[i]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: