插入排序C语言

#include<stdio.h>
#include <stdlib.h>
int main(){
int a[5],j,temp,*p,*q,*end;
for(int i=0;i<5;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<5;i++){
if(a[i]>a[i-1])
continue;
temp=a[i];
for(j=i-1;j>=0;j--){
if(a[i]>a[j])
break;
a[j+1]=a[j];
}
a[j+1]=temp;
}
for(int i=0;i<5;i++){
printf("%d",a[i]);
}
//下面这个题用指针实现直接插入排序
/* p=a;
end=a+5;
for(p=a+1;p<end;p++){
if(*(p-1)>*p){
temp=*p;
*p=*(p-1);
for(q=p-2;q>=a;q--){
if(*q<temp){
break;
}
*(q+1)=*q;
}
*(q+1)=temp;

}*/
for(int i=0;i<5;i++){
printf("%2d",a[i]);
}
return 0;

猜你喜欢

转载自blog.csdn.net/cqwoniu/article/details/79207951
今日推荐