binary-heap

    0熱度

    1回答

    在我們開始之前,是的這是作業。 希望我能在這裏得到一些解釋。我正在實現一個具有固定大小數組的優先級隊列,並且已經編寫了所有函數並編譯了所有內容,但是我在測試文件中遇到了選項M的問題。所有其他功能都可以正常工作,但當我嘗試add_multiple_items時,我在swap_with_parent函數聲明中出現表達式錯誤。這裏是我的程序文件。該pqtest2.cpp文件: // FILE: pqte

    1熱度

    2回答

    我在這裏有一個算法。 Click here to check algorithm image 它做什麼,它遍歷數組,發現3個最大數值,並返回它們的總和。 例如,一個數組[1,2,3,4,5]將返回12(3 + 4 + 5 = 12)。 圖像中的算法說它是O(nlogk)。但那是我無法理解的。 追隨中是我講第一個for循環的圖像透視: 堆的方法 「插入()」 和 「deleteMin()」,它們都需

    0熱度

    1回答

    在我班的講座幻燈片中,我有一個堆,它有一個名爲deleteMin()的方法。 它做什麼,它會刪除堆中的最小值。它說它需要O(logn)。 這是我無法理解的。 在堆結構中,最小值始終位於樹的根部,因爲堆執行稱爲「Upheap」和「Downheap」的操作,如果子節點的值小於父節點的值,則它總是將子節點與其父節點互換。這意味着樹的根將始終具有最小的值。我想我們可以在找到最小值和刪除時只取這個值,這隻需

    4熱度

    1回答

    執行heapsort時,只有一個最大元素從堆中提取,並與堆結尾處的元素交換,然後被認爲是堆不足。然後堆屬性使用heapify進行恢復。這樣做直到堆大小變爲零。 而不是假設我從堆中提取兩個最大元素而不再次調用heapify。第二個max元素將是max-heap的第二個或第三個元素。對於第二個最大元素,我可以將其與堆的第二個最後一個元素進行交換。接下來是heapsort的類似步驟。 取決於第二個最大元

    2熱度

    1回答

    我已經看到了一些使用heapifyUp()和heapifyDown()方法的堆的實現。使用heapifyDown(無法我們實施heapifyUp())爲: for(int i = heap_size/2; i >= 0; i--) heapifyDown(i); 我beleive上面的代碼片斷的時間複雜度是O(n)(根據Cormen)。 現在heapifyUp()實現如下: whil

    0熱度

    1回答

    我對C非常陌生,但我認爲在學習基本數據結構時我會學習它。無論如何,我遇到了一個問題,關於我的代碼中出現錯誤的方式/位置。 基本上,我發現了兩種不同類型的錯誤: 分割錯誤(@二進制堆長度2和3)從堆減去時。 當我添加到二進制堆足夠長,使其長度4(及以上),然後減去長度2(我得到一個無效的二進制堆結構@長度爲3時,我也這樣做,以及malloc/Realloc錯誤)。 基本上,我只是想看看我究竟做錯了什

    1熱度

    1回答

    我正在研究數據結構和算法,當時我應該實現在特定時間範圍內運行heapsort算法。下面是兩種實現: def generateSwaps(): size=self._n for root in range((size//2)-1,-1,-1): root_val = self._data[root] # save root value child = 2*r

    4熱度

    1回答

    由於平衡BST將採取O(log(n))時間正在提取最大(通過提取我的意思是既查找和刪除最大元素)。 另一方面Max-heap也需要O(log(n))時間來提取最大元素。 他們中的任何一個在Extract-Max操作中都有優勢嗎?

    0熱度

    1回答

    我想創建一個數組的二進制堆。我已成功地與buildHeap和heapify堆成一堆。我的問題是當我嘗試insert一個新的元素到陣列中,當我嘗試與heapSort分類。 以下是我對heapify功能: void heap::Heapify(int arr[], int i){ int largest = i; int L = LeftChild(i); int R =

    -1熱度

    1回答

    package queue; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class TernaryHeap <T extends Comparable<T>> extends Abstract