#include <stdio.h> #include <stdlib.h> #define MAXLINE 10 //插入排序算法。参考《算法导论》。 void insertSort(int a[], int n) { int key; for (int j = 1; j <= n; j++) { key = a[j]; int i = j-1; while (a[i] > key && i >= 0) //此处的处理比较巧妙 { a[i + 1] = a[i]; //腾出位置 i = i - 1; } a[i+1] = key; //插到正确位置 } } int main() { int testArray[MAXLINE]; for(int m1 = 0; m1 < MAXLINE -1 ; m1++) testArray[m1] = rand(); printf("排序之前:/n"); for(int m2 = 0; m2 < MAXLINE; m2++) printf("%d /n", testArray[m2]); printf("/n"); insertSort(testArray, MAXLINE); printf("排序之后:/n"); for(int m3 = 0; m3 < MAXLINE; m3++) printf("%d /n", testArray[m3]); printf("/n"); return 0; }