直接插入排序

直接插入排序:每次將一個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子文件中的適當位置,直到全部記錄插入完成爲止。當數組已經排好序,直接插入排序的時間複雜度爲O(n)


# include <stdio.h>
void insert_sort(int a[],int len);
int main(void)
{
	int a[]={165,416,51,654,351,6541,3241,654,3,546,54,365435};
	insert_sort(a,sizeof(a)/sizeof(a[0]));
	for (int i=0;i<sizeof(a)/sizeof(a[0]);++i)
	{
		printf ("%d ",a[i]);
	}
	
	return 0;
}
void insert_sort(int a[],int len)
{
	int i,j;
	for (i=1;i<len;++i)				//遍歷數組 
	{
		for (j=i;j>0 && a[j]<a[j-1];--j)		//將前 i 個數字升序排序 
		{
			int temp = a[j];
			a[j] = a[j-1];
			a[j-1] = temp;
		}
	}
}


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