1、插入法排序算法介绍
插入法是一个比较常用的排序方法。插入法排序的思路就是将要排序的数组分两个区间,一个是已排序区间,一个是未排序区间。初始时,默认第一个元素是已排序区间的,后面的所有元素为未排序区间。然后依次取未排序区间的元素,在已排序区间找到合适的位置插入,直到排完所有数据。
比如对一个包含5个元素的数组5、2、4、3、1进行排序,采用插入法时,排序的步骤如下所示。
2、插入法代码示例
下面我们采用c语言编写一段代码来实现上面的5个数的排序,代码如下所示。
#include <stdio.h>
void main()
{
int i,j;
int data[5]={5,2,4,3,1};
int temp;
printf("Data: ");
for(i=0;i<5;i++)
printf("%d ",data[i]);
printf("\n");
for(i=1;i<5;i++)
{
temp = data[i];
for(j=i-1;j>=0;j--)
{
if(temp < data[j])
data[j+1]=data[j];
else
break;
}
data[j+1] = temp;
}
printf("Final data: ");
for(i=0;i<5;i++)
printf("%d ",data[i]);
printf("\n");
}
编译代码并运行,执行结果如下所示
Data: 5 2 4 3 1
Final data: 1 2 3 4 5