插入排序的原理就是,将一串数字划为有序部分与无序部分,若无法判断有序部分时,可以将第一位数字作为有序部分,然后从第二位开始依次与前一位比较大小,符合大小条件就交换位置,每次交换位置直到不符合大小条件时就停止,然后记录位置,将准备排序的数字插入其中。
#include<stdio.h>
void sort(int *a,int n)
{
for(int i=0;i<n-1;i++)
{
int end=i;
int temp=a[end+1];
while(end>=0)
{
if(temp<a[end])
{
a[end+1]=a[end];//数组位置后移一位
end--;
}
else break;
}
a[end+1]=temp;//找到合适位置,插入数据
}
}
int main()
{
int s[5]={1,3,7,2,4};
sort(s,5);
for(int i=0;i<5;i++)
{
printf("%d",s[i]);
}
return 0;
}