C語言排序算法--直接插入排序

直接插入排序法是指將一個記錄插入到已排好序的有序序列中,使整個序列在新插入了一個記錄之後仍然有序,插入位置的確定是通過將待插入的記錄與有序區中的各記錄自右向左依次比較其關鍵字值的大小確定的。

 

#include <stdio.h>
void isort(int a[],int n);
int main()
{
	int i,a[11];
	for(i=1;i<11;i++){
		scanf("%d",&a[i]);
	}
	printf("Input the original order:\n");
	for(i=1;i<11;i++){
		printf("%d ",a[i]);
	}
	isort(a,10);
	printf("\nthe sorted numbers:\n");
	for(i=1;i<11;i++){
		printf("%d ",a[i]);
	}
}
void isort(int s[],int n)
{
	int i,j;
	for(i=2;i<=n;i++){
		s[0]=s[i];  /*給監視哨賦值*/
		j=i-1;  /*確定要進行比較的元素的最右邊位置*/ 
		while(s[0]<s[j]){
			s[j+1]=s[j];  /*數據右移*/ 
			j--;  /*移向左邊未進行比較的元素*/ 
		}
		s[j+1]=s[0]; /*插入*/ 
	}
}

 

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