好好编程,天天向上
日日进步,诸君共鉴
#include <stdio.h>
#include <stdlib.h>
void insertSort(int arr[],int n)//传入数组地址,元素个数
{
int i,j;
for(i=0;i<n-1;i++)//第一层循环:有n个元素循环n-1次
{
if(arr[i+1]<arr[i])//当后面的数小于前面的数才有插入
{
int temp = arr[i+1];//暂存要移动的数
for(j=i;j>=0&&arr[j]>temp;j--)//结束循环的标准:j<0或前一个数小于后一个数
{
arr[j+1]=arr[j];//一个个比较,比较完向后移动
arr[j] = temp;
}
}
}
}
void print(int arr[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
}
int main()
{
int i=0;
int arr[100];//定义数组大小
do
{
scanf("%d",&arr[i]);
i++;
}while(getchar()!='\n');//输入数组
print(arr,i);//打印排序前数组
printf("\n");
insertSort(arr,i);//插入函数
print(arr,i);//打印排序后数组
return 0;
}