找到 210 篇文章,關於演算法分析

資料結構中的 B 樹刪除

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:31:37

1K+ 次瀏覽

在這裡我們將瞭解如何從 B 樹中刪除節點。假設我們有一個如下所示的 B 樹:B 樹示例 - 刪除分為兩個部分。首先,我們必須找到元素。該策略類似於查詢。現在,對於刪除,我們必須注意一些規則。一個節點必須至少有 m/2 個元素。因此,如果我們刪除一個元素,並且它剩餘的元素少於 m-1 個,那麼它將進行自我調整。如果整個節點都被刪除,則其子節點將被合併,如果其大小與 m 相同,則將其拆分... 閱讀更多

資料結構中的 B 樹插入

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:25:53

701 次瀏覽

在這裡我們將瞭解如何在 B 樹中執行插入操作。假設我們有一個如下所示的 B 樹:B 樹示例 - 要插入一個元素,其思想與 BST 非常相似,但我們必須遵循一些規則。每個節點有 m 個子節點和 m-1 個元素。如果我們在一個節點中插入一個元素,則有兩種情況。如果該節點的元素少於 m-1,則新元素將直接插入到該節點中。如果它有 m-1 個元素,則透過獲取所有元素以及將要插入的元素,然後獲取... 閱讀更多

資料結構中的 B 樹查詢

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:27:13

592 次瀏覽

在這裡我們將瞭解如何在 B 樹中執行搜尋操作。B 樹搜尋也稱為 B 樹查詢。假設我們有一個如下所示的 B 樹:B 樹示例 - 搜尋技術與二叉搜尋樹非常相似。假設我們想從上面的樹中搜索 66。因此,我們將從根節點開始,現在 66 大於根節點元素 46。因此,我們將移動到根節點的右子節點。然後右子節點有多個元素。這些元素已排序,它們是 [56, 81]。我們的目標鍵大於 56,... 閱讀更多

資料結構中的區間堆

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:19:04

1K+ 次瀏覽

在這裡我們將瞭解什麼是區間堆。區間堆是完全二叉樹,其中除最後一個節點外,每個節點都包含兩個元素。設節點 P 中兩個元素的優先順序為“a”和“b”。這裡我們考慮 a ≤ b。我們說節點 P 表示閉區間 [a, b]。這裡 a 是 P 區間的左端點,b 是右端點。[c, d] 包含在區間 [a, b] 中,當且僅當 a ≤ c ≤ d ≤ b。在一個... 閱讀更多

資料結構中的最大 WBLT 操作

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:18:05

163 次瀏覽

在這裡我們將瞭解不同的最大 WBLT 操作。HBLT 有不同的操作,如插入、刪除和初始化。它們與 WBLT 也非常相似。但是,合併操作可以在單個自頂向下的過程中完成。WBLT 可以進行單程合併操作。因為我們可以在向下過程中找到 w 值。我們可以更新 w 值並根據需要交換子樹。對於 HBLT,我們無法在向下遍歷樹的過程中找到 s 值。由於合併可以在單個自頂向下的過程中完成,那麼插入和刪除... 閱讀更多

資料結構中的權重偏左樹

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:15:01

1K+ 次瀏覽

在這裡我們將瞭解左偏樹的另一種變體。在這裡,我們將考慮子樹中的節點數,而不是從根節點到外部節點的最短路徑的長度。在這裡,我們將定義節點 x 的權重 w(x),為以 x 為根的子樹中的內部節點數。如果 x 是外部節點,則權重為 0。如果 x 是內部節點,則權重比其子節點權重之和多 1。這是一個權重偏左樹 (WBLT) 的示例:假設二叉樹是... 閱讀更多

資料結構中從最大 HBLT 中刪除任意元素

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:13:14

166 次瀏覽

從最大或最小 HBLT 中刪除任意節點不是優先順序佇列或 HBLT 的標準操作。如果我們想從 HBLT 中刪除一個節點,例如 K,我們必須遵循以下規則。將以 K 為根的子樹從樹中分離,並將其替換為 K 節點子樹的合併。更新從 K 到根的路徑上的 s 值,並根據需要在這條路徑上交換子樹以保持 HBLT 的屬性。要更新從 K 到根的 s 值,我們需要每個節點的父節點指標。此更新 s 的操作... 閱讀更多

資料結構中單個數組中的多個列表

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:11:51

576 次瀏覽

當陣列儲存隨時間變化的資料時,陣列表示基本上會浪費空間。為了儲存一些資料,我們分配了一些足夠大的空間來在陣列中儲存多個值。假設我們使用陣列加倍標準來增加陣列的大小。假設當前陣列大小為 8192。這是滿的。因此,我們需要使用陣列加倍技術來增加它。因此,新陣列的大小將為 16384。然後將舊陣列中的 8192 個元素複製到新陣列中,然後釋放舊陣列。現在我們可以意識到,在釋放... 閱讀更多

資料結構中合併兩個最大 HBLT

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:10:20

232 次瀏覽

合併策略很容易使用遞迴來完成。假設 A 和 B 是兩個將要合併的 HBLT。如果其中一個為空,則只需將另一個作為最終結果。如果沒有空 HBLT,則我們必須比較兩個根節點中的元素。具有較大元素的根節點將成為合併後的 HBLT 的根節點。假設 A 具有更大的根節點。並且它的左子樹是 L。假設 C 是由 A 的右子樹和 HBLT B 合併產生的最大 HBLT。最終的 HBLT 將以 A 為根節點,... 閱讀更多

資料結構中從最大 HBLT 中刪除最大元素

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:07:28

136 次瀏覽

在最大 HBLT 中,根節點位於根節點處。如果刪除根節點,則兩個最大 HBLT(即左子樹和右子樹)將被分離。透過再次合併這兩個最大 HBLT,我們可以將它們合併成一個。因此,在合併後,所有元素都將存在,除了被刪除的那個。

廣告