插入集 按照順序插入元素,得到排序集合

2021-05-25 06:18:10 字數 379 閱讀 5581

在之前的專案中,用到了插入集,具體的需求就是:在稀軸排花中,每個排花方法都有乙個評價(方法優劣),找出最優的10個排花方法。插入集就是根據插入排序,在新增元素時,先搜尋它的最終位置,然後插入,當所有元素插入完畢後,得到乙個排序的集合。適用於的模型:在n個數中找出最大或最小的k個(k個元素需要排序)。只需要設定插入集的容量為k並且定長,然後遍歷這n個元素,將他們新增進插入集,最後得到乙個排好序的集合。

實際上,插入集適用的問題同樣可以用堆來解決,並且在輸入規模比較大時堆的效率更高。但是當輸入規模較小時,插入集比較合適。如果最後獲得集合是需要排序的,堆還需要進行一下處理。

插入集的時間損耗主要是在搜尋插入位置,假設集合大小為n,插入集大小為k,則最壞情況下時間複雜度為o(nk),但是當k較小時,效能還是不錯的。

按照插入順序排序的LinkedHashMap

linkedhashmap可以做到按照使用者放入集合的順序取出集合中的元素,但是 hashmap不能做到。linkedhashmap繼承於hashmap,其底層實現和hashmap一致,都用雜湊表實現,區別是linkedhashmap還使用了乙個雙向鍊錶實現順序訪問,所以linkedhashmap是...

C語言順序表的插入元素

include include define 定義乙個識別符號來表示乙個常量 define ok 1 define error 1 define max size 100 typedef 關鍵字來定義自己習慣的資料型別名稱 typedef int status typedef int elemtyp...

排序 三 插入排序(將元素比較插入到前面的位置)

參考文章 時間複雜度o n2 最好情況o n 最壞情況o n2 穩定。同冒泡 工作原理 通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素 第二個元素 作為目標元素,在已經排序的元素序列中從後向...