基于數(shù)組的插入排序,可以從頭開始找,也可以從尾開始找,從頭找需要兩個(gè)循環(huán)或者一個(gè)buffer,從尾找的只用一個(gè)循環(huán)就可以,寫起來相對(duì)簡單。
// small -> big, tail -> head
void insert_sort(int a[], int aLen, int num) {
int i;
for (i = aLen; i > 0; i--) {
if (a[i-1] < num) {
a[i] = num;
return;
}
else {
a[i] = a[i - 1];
}
}
a[i] = num;
}
// big -> small, head -> tail
void insert_sort(int a[], int aLen, int num) {
int i, j;
for (i = 0; i < aLen; i++) {
if (num > a[i]) {
for (j = aLen-1; j > i; j--) {
a[j] = a[j - 1];
}
a[i] = num;
break;
}
}