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

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 

 

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