排序
题目描述
给你 N ( N < = 100 ) N(N<=100) N(N<=100)个数,请你按照从小到大的顺序输出。
输入描述
输入数据第一行是一个正整数 N N N,第二行有 N N N个整数。
输出描述
输出一行,从小到大输出这 N N N个数,中间用空格隔开。
样例
输入
5
1 4 3 2 5
输出
1 2 3 4 5
提示
注意:整数未标明范围时请选用long long
来源
C语言实验6-一维数组的应用
C实现
#include <stdio.h>
#include <stdlib.h>
void insertSort(long long int *,long long int);
int main() {
long long int n,*p,*pp;
scanf("%lld",&n);
p=pp=(long long *)malloc(n*sizeof(long long int));
while(pp<p+n)
scanf("%lld",pp++);
insertSort(p,n);
pp=p;
while(pp<p+n)
printf("%lld ",*pp++);
free(p);
return 0;
}
void insertSort(long long int *ptr,long long int n) {
long long int *q,*p,*p_end=ptr+n,temp;
for(p=ptr+1;p<p_end;p++) {
if(*p<*(p-1)) {
temp=*p;
for(q=p-1;q>=ptr&&*q>temp;q--)
*(q+1)=*q;
*(q+1)=temp;
}
}
}