插入排序
void insert_sort(int A[] , int n) { for (int i = 1 ; i < n ;++i) { int v = A[i] ; int j = i - 1 ; while( j >= 0 && A[j] > v) { A[j+1] = A[j] ; --j; } A[j+1] = v ; } }
希尔排序
void shell_sort(int A[] , int n) { int i , j , gap , v; for ( gap = n/2 ; gap > 0 ; gap /= 2 ) for ( i = gap ; i < n ; ++i ) { v = A[i] ; for ( j = i ; j >=gap ; j-= gap) if ( v < A[j-gap]) A[j] = A[j-gap] ; else break ; A[j] = v; } }