今天学习了插入排序,借此机会写下自己的心得。
插入排序就是将一个待排序的序列插入到一个已经排序的有序序列中去。
更加专业性的描述大家可以自己搜索。
下面是我找的图方便大家理解插入排序。
话不多说,奉上代码,如有错误请多指教!
#include<stdio.h>
#define P 10
void insertsort(int a[],int length);
int main()
{
int a[P] = {1,23,2,5,67,3,50,17,48,19};
int i,length;
length = sizeof(a)/sizeof(a[0]);
for(i=0;i<length;i++)
{
printf("%d ",a[i]);
}
printf("\n");
insertsort(a,length);
printf("*******insert sort*******\n");
for(i=0;i<length;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
//插入排序
void insertsort(int a[],int length){
int i,j;
int temp;
for(i=1;i<length;i++)
{
temp = a[i];
j = i-1;
while(temp<a[j] && j>=0){
a[j+1] = a[j];
j--;
}
a[j+1] = temp;
}
}