插入排序(英語:Insertion Sort)是一種簡單直觀的排序算法塞茅。本文用可視化的方式為您對其算法機制進行了展示亩码。
算法機制
插入排序迭代,每次重復(fù)消耗一個輸入元素野瘦,并生成一個排序的輸出列表描沟。在每次迭代中飒泻,插入排序從輸入數(shù)據(jù)中刪除一個元素,在排序列表中找到它所屬的位置并將其插入那里吏廉。它重復(fù)直到?jīng)]有輸入元素剩余泞遗。
偽代碼說明
一般來說,插入排序都采用in-place在數(shù)組上實現(xiàn)席覆。具體算法描述如下:
- 從第一個元素開始史辙,該元素可以認為已經(jīng)被排序
- 取出下一個元素,在已經(jīng)排序的元素序列中從后向前掃描
- 如果該元素(已排序)大于新元素佩伤,將該元素移到下一位置
- 重復(fù)步驟3聊倔,直到找到已排序的元素小于或者等于新元素的位置
- 將新元素插入到該位置后
- 重復(fù)步驟2~5
可視化說明
適用場景
插入排序不適合對于數(shù)據(jù)量比較大的排序應(yīng)用。但是生巡,如果需要排序的數(shù)據(jù)量很小耙蔑,例如,量級小于千孤荣;或者若已知輸入元素大致上按照順序排列甸陌,那么插入排序還是一個不錯的選擇。
版權(quán)聲明垃环,本文首發(fā)于 數(shù)字魔盒 https://www.dm2box.com/ 歡迎轉(zhuǎn)載邀层。