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