直接插入排序
1 //直接插入排序 2 #include <stdio.h> 3 4 void main() 5 { 6 int a[11], i; 7 int insort(int a[], int n); 8 printf(" 请输入十个数据: "); 9 for(i = 1; i<11; i++) 10 { 11 scanf("%d", &a[i]); 12 } 13 printf("原始数据: "); 14 for(i = 1; i<11; i++) 15 { 16 printf(" %d", a[i]); 17 } 18 insort(a, 10); 19 printf(" 插入数据排序后顺序: "); 20 for(i = 1; i<11; i++) 21 { 22 printf(" %d", a[i]); 23 } 24 printf(" "); 25 } 26 27 int insort(int a[], int n) 28 { 29 int j, k; 30 for(j = 2; j<=n; j++) 31 { 32 if(a[j]<a[j-1]) 33 { 34 a[0] = a[j];//将值给到哨兵 35 for(k = j-1; a[0]<a[k]; k--) 36 { 37 a[k+1] = a[k];//向后移位 38 } 39 a[k+1] = a[0];//插入数据 40 } 41 } 42 }