插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,適用於少量資料的排序,時間複雜度為o(n^2)。
插入排序屬於穩定排序。
插入排序不需要構造新的資料序列,而是在原有的資料序列中進行排序運算。
1void insertionsort(int* array, int
length)
216 array[j + 1] =key;17}
18 }
ps:需要注意第10行迴圈條件之一 j >= 0 這和《演算法導論》中的偽**有所不同,是因為《演算法導論》中資料序列的下標從1開始,如果要保持一致,可將第 10~15行的**改為:
10 j = i;11 while((j > 0) && (array[j - 1] >key))
12 16 array[j] =key;
演算法之插入排序
直接插入排序 package insertsort 插入排序之直接插入排序 直接插入排序基本思想 在要排序的一組數中,假設n 1個數已經排好,將第n個數插入到已經排好的序列中 如此反覆迴圈,直至所有的數排好。public class directinsertsort public int inser...
排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...
排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...