簡體   English   中英

將哈希表轉換為O(log(k)* k + n)中的排序數組

[英]Convert a hashtable to a sorted Array in O(log(k)*k + n)

因此,在我的數據結構講座中,我被告知可以將具有k個鍵和n個元素的哈希表轉換為經攤銷的O(log(k)* k + n)的排序數組。 但是,背后沒有任何理由。 我感到有點困惑,為什么我試圖找到一個能做到這一點的算法。

我不能提出一個。 我猜它必須是一個眾所周知的,因為我們只是在沒有證據的情況下注意到它,但我找不到它。 您知道此問題的解決方案嗎?

如果要按鍵排序,則用k * log(k)排序鍵,用n插入基於排序鍵的元素。 因此,O(klog(k)+ n)。 該算法是:

  1. 對鍵排序(可能在新數組中)
  2. 創建一個可容納n個元素的空數組
  3. 遍歷排序的鍵數組,並將每個鍵的所有元素插入新數組

步驟1采用O(klog(k))運算,而步驟3采用O(n)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM