插入算法要把排序的數組分成兩部分,第一部分包含了這個數組的所有元素,但排除第一個元素。
而第二部分就只包含這個元素。
排序時從第一部分中按順序取一個元素,插入到第二部分中,直至取完第一部分的元素,則第二部分就爲有序數組
C語言實現:
void InsertSort(int a[], int n) {
int i,j;
int temp;//哨兵
for(i=1; i<n; i++) {
//在無序數組中按順序取一個元素
temp = a[i];
//將該元素在第二部分的有序數組中進行插入
for(j=i; j>0 && a[j-1] > temp; j--) {
a[j] = a[j-1];
}
a[j] = temp;
}
}