排序算法(三)—— 插入法排序算法

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 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章