每次將一個待排序記錄,按關鍵字插入到前面已排序子序列的適當位置,直到全部插入完成。
a[0] 自成有序區,無序區 a[1...n-1],i=1。a[i] 併入有序區 a[0...i-1] 形成 a[0...i]。i++ 重複直到 i==n-1。public void sort(int[] array) {
int i, j, k;
for (i = 1; i < array.length; i++) {
for (j = i - 1; j >= 0; j--) {
if (array[j] < array[i]) break;
}
if (j != i - 1) {
int tmp = array[i];
for (k = i - 1; k > j; k--) {
array[k + 1] = array[k];
}
array[k + 1] = tmp;
}
}
}
public void sort(int[] array) {
for (int i = 1; i < array.length; i++) {
if (array[i] < array[i - 1]) {
int tmp = array[i];
int j;
for (j = i - 1; j >= 0 && array[j] > tmp; j--) {
array[j + 1] = array[j];
}
array[j + 1] = tmp;
}
}
}