//直接插入排序 //假設待排序的記錄存放在數組R[1..n]中。 //初始時,R[1]自成1個有序區,無序區為R[2..n]。 //從i=2起直至i=n為止,依次將R[i]插入當前的有序區R[1..i-1]中, //生成含n個記錄的有序區。 //楊鑫 #include#include #define N 10 void InsertSort(int a[], int size) { int i, j, k, temp = 0; for(i = 1; i < size; i++) { temp = a[i]; for(j = 0; j < i; j++) { if(temp < a[j]) { for(k = i - 1; k >= j; k--) { a[k + 1] = a[k]; } a[j] = temp; break; } } } } int main() { int m = 0; int b[N] = {9, 8, 7, 6, 5, 4, 3, 2, 1}; printf(============================= ); printf(排序前的數據是: 9 8 7 6 5 4 3 2 1 ); InsertSort(b, N); printf(排序後的結果是: ); for(m = 0; m < N; m++) { printf( %d , b[m]); } printf( ============================= ); return 0; }
結果: