n个数的排序
题目描述
LeiQ当上了体育委员,现在老师让他去给班级里的人排队,LeiQ刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果
输入描述
多组输入,每组的第一行是一个正数 n n n( 1 ≤ n ≤ 100 1\leq n\leq 100 1≤n≤100),第二行是 n n n个数,表示每一个人的高度。
输出描述
输出排序完成后的结果。
样例
输入
3
176 175 174
输出
174 175 176
来源
C语言实验8——指针的应用
C++实现
#include <iostream>
using namespace std;
void insertSort(int *ptr, int n) {
int *p_end,*p,*q,temp;
p=ptr;
p_end=p+n;
for(p++;p<p_end;p++){
if(*p<*(p-1)){
temp=*p;
for(q=p-1;q>=ptr&&temp<*q;q--)
*(q+1)=*q;
*(q+1)=temp;
}
}
}
int main() {
int n,*p,temp;
cin>>n;
p=(int *)malloc(n*sizeof(int));
temp=n;
while(temp--){
cin>>*(p++);
}
p-=n;
insertSort(p,n);
temp=n;
while(temp--){
cout<<*(p++)<<" ";
}
p-=n;
free(p);
return 0;
}