3 插入排序(詳細)

2021-10-05 17:20:14 字數 771 閱讀 1666

目錄

sort類在選擇排序中的約定中

每次都將當前元素插入到左側已經排序的陣列中,使得插入之後左側陣列依然有序。

插入排序的時間複雜度取決於陣列的初始順序,如果陣列已經部分有序了,那麼逆序較少,需要的交換次數也就較少,時間複雜度較低。

public

class

insertion

comparable

>

extends

sort

}}}

最好的情況下需要 n-1 次比較和 0 次交換,最好的情況就是陣列已經有序了

最壞的情況下需要 ~n2/2 比較以及 ~n2/2 次交換,最壞的情況是陣列是倒序的;

時間複雜度:平均o(n²)

最好o(n) 順序

最壞o(n²) 逆序

空間複雜度:o(1)

穩定性:穩定

ps:我剛開始看實現的時候在想,沒有插入啊,為啥叫插入語句啊,細想之後明白了,我們可以吧左側已經排好序的部分看做乙個陣列,後面來乙個就相當於是插入乙個。

小知識

穩定性:假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序後的序列中,r[i]仍在r[j]之前,則稱這種排序演算法是穩定的;否則稱為不穩定的。

插入排序 詳細解析

1.簡介 插入排序 insertion sort 的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in place排序 即只需用到o 1 的額外空間的排序 因而在從後向前掃瞄過程中,需要...

排序演算法3 插入排序

插入排序 insertion sort 通過對未排序的元素逐個插入已排序的合適的位置而完成排序工作,其排序流程如下 1.對陣列的前兩個元素進行排序。2.將第三個元素和前兩個已經排好序的元素進行比較,並且插入到合適的位置。3.和第二步同樣的方法對剩下的所有元素進行排序,最後便可得到按照從大到小的順序排...

排序演算法3 插入排序

該演算法維護乙個有序序列,然後把無序序列中的元素,在有序序列中從後往前進行掃瞄,找到位置後插入。從乙個元素開始,該元素可以認為已經被排序好的。在有序序列從後往前掃瞄的過程中,也要將已排序的元素逐個後移,為新插入的元素提供位置 插入排序 public class insertsort for int ...