最壞情況下,直接插入排序時間複雜度為θ(n²),最小時間代價為θ(n),平均時間代價為θ(n²)
需要乙個輔助儲存單位
緊密性,有乙個比較,三個賦值操作(越緊密,演算法的時間複雜度係數越小)
具有原址性(在任何時候,最多只有其中常數個數字儲存在陣列外面。)
具有穩定性(假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變;排序演算法是否為穩定的是由具體演算法決定的,不穩定的演算法在某種條件下可以變為穩定的演算法,而穩定的演算法在某種條件下也可以變為不穩定的演算法)
演算法型別:插入排序
函式呼叫的時間代價要遠遠大於內嵌**段的時間代價
c++
插入排序之 直接插入排序(c c )
如下,以c中陣列為例來展示該演算法。在insertsort函式中對待排序陣列從第二位數開始進行比較 均與前一位進行比較 在內迴圈中選定該次迴圈待排序數的位置並放置,直接插入是穩定的排序方法。直接插入排序演算法的時間複雜度為o n2 空間複雜度為1。直接插入排序並不能保證每一次使得待排序數處於其最終位...
直接插入排序
直接插入排序是一種最簡單的排序方法,它的基本思想是依次將每個記錄插入到乙個有序中去。就是說,第i i 1 遍整理時,a1,a2,ai 1已經是排好序的子串行 取出第i個元素ai,在已排好序的子串行為ai找到乙個合適的位置,並將它插到該位置上。易知上述排序當i 1時實際上為空操作,故可直接從i 2開始...
直接插入排序
直接插入排序的演算法思想 直接插入排序 straight insertion sort 的基本操作是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的 記錄數增 1 的有序表。根據該思想,編寫 如下 從已有序列的第0個記錄開始比較 public static void insertsort1 i...