binomial-heap

    1熱度

    1回答

    ,我們只知道指向最小節點的指針,但是如何減少任意節點的鍵?在這種情況下,首先,我應該找到該節點,然後用O(lgN)時間執行交換。 我在線搜索,許多指出如何減少節點,但沒有提到如何訪問這個節點減少。 編輯: 我應該使用指向堆中的每個節點的指針。

    1熱度

    1回答

    function [y]=AmericanPutClassic (St,t) % S0 = 100; K = 100; r = 0.05; sigma = 0.3; T = 2; nsteps = 5; % St dt = T/nsteps; u=exp(sigma*sqrt(dt)); d=1/u; Pu=(exp(r*dt)-d)/(u-d); Pd=1-Pu;

    0熱度

    4回答

    據我所知,存在一個二項堆或一個所謂的可合併堆,它用於合併兩個堆。我的問題是,如果我將這兩個堆複製到一個大陣列中,然後執行堆構建過程,而不是將這些堆合併爲一個堆,那麼這會是一個好方法嗎? 因爲我不知道如何通過堆操作使用兩個堆來創建一個堆。請告訴我,如果這不是一個好方法,或者如果可以的話,請給我一些鏈接,其中實現了合併操作的二項堆。

    2熱度

    1回答

    我無法找到此語句的良好證據。我知道如何確定二叉樹的數量是通過使用n的二進制表示來確定的。 例如,13個元素是二進制的1101,2^{3} + 2^{2} + 2^{0}所以需要3個二叉樹,並且ln(13)+ 1 = 3.56> 3 我只是不知道如何證明它由log(n)所界定。一般來說,我在涉及log(n)的算法中遇到很多概念。 有人可以提供一個簡潔明瞭的證明嗎?

    0熱度

    1回答

    我們有一個由2016節點組成的二叉堆。 Decompositing成二進制我們得到 11111100000 堆與節點512 256 128 64 32和16 但我們如何能夠計算某些級別的節點的數目由6期應激?什麼是計算數字和什麼節點在例如3級的公式? 是否有任何這方面的最終解決方案?謝謝

    1熱度

    1回答

    我的目標是構建一個二項堆。這裏是我的代碼,我已經寫了現在: #include<iostream> using namespace std; void maxheapify(int a[],int length,int i) { int left=2*i; int right=2*i+1; int largest=i; if(left<length &&

    1熱度

    3回答

    有人可以解釋什麼是不相交集數據結構嗎?或者可以鏈接到一個YouTube視頻或文章,以解釋它。 我在幾分鐘前搜索了它,我得到的只是一些數學課,其中涉及一張看起來像維恩圖的圖像。也許是這樣,但我不確定,所以任何幫助表示讚賞。 快速注意,當我被問及「如何使用二叉樹來表示二叉樹隊列中的每個二叉樹」時,這是指您必須彼此堆疊的二叉樹。就像B1附加一個B1成爲一個B2,然後兩個B2成爲一個B3,依此類推。

    2熱度

    2回答

    我最近剛剛啓動了一個已經編寫了一些代碼的項目。我決定研究他的實現,發現他實現了一個帶有單鏈表的優先級隊列。 我對SLL的理解是,因爲您可能需要遍歷整個列表,所以實現它是低效的,這就是爲什麼堆首選的原因。但是,也許我錯過了某種背後的推理,並想知道是否有人曾經爲堆優先級隊列選擇過SLL的SLL?

    3熱度

    1回答

    我正在尋找二項式堆的Python實現,並且我注意到代碼沒有實現decreaseKey。爲什麼在二項堆中沒有人實現decreaseKey?