目錄
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 ...