#include<stdio.h>
#define N 100
void insertsearch(int a[],int e){
int j=1;
if(a[1]==0){//插入第一个元素
a[1]=e;
}else{
while(a[j]!=0)//找到已插入的数组的长度
j++;
// printf("%d\n",j);
for(int i=1;a[i]!=0;i++){//查找合适的插入位置
if(e<=a[i] && e>a[i-1]){
for(int k=j;k>i;k--){//将第i个位置的后面所有元素往后移动
a[k]=a[k-1];
}
a[i]=e;//插入e
break;
}else if(e>=a[i] && a[i+1]==0){//插入的位置为最后一个的情况,不需要移动元素
a[i+1]=e;
break;
}
}
}
}
/*
9
12 3 56 34 25 567 99 100 25
*/
int main(){
int a[N]={0};
int n,num;//元素个数,和元素
scanf("%d",&n);//输入元素个数
for(int i=0;i<n;i++){
scanf("%d",&num);//输入元素
insertsearch(a,num);
}
printf("排序完毕输出为\n");
for(int i=1;i<=n;i++){
printf("%d ",a[i]);//输出排序后的数组
}
return 0;
}
插入排序算法
最新推荐文章于 2024-05-31 09:25:19 发布