找到 1861 篇文章 關於資料結構

鄰接表表示的 Prim 最小生成樹

Sharon Christine
更新於 2020-06-15 17:13:06

2K+ 瀏覽量

它類似於之前的演算法。唯一的區別是,圖 G(V, E) 由鄰接表表示。鄰接表表示的時間複雜度為 O(E log V)。輸入和輸出輸入:成本矩陣:輸出:邊:A--B 和成本:1 邊:B--E 和成本:2 邊:A--C 和成本:3 邊:A--D 和成本:4 邊:E--F 和成本:2 邊:F--G 和成本:3 總成本:15演算法prims(g: 圖,開始)輸入 - 圖 g 和名為“開始”的種子頂點輸出 - 新增邊後的樹。開始 建立兩個集合 B、N 將開始節點新增到 B ... 閱讀更多

Prim 的最小生成樹演算法

karthikeya Boyini
更新於 2020-06-15 17:22:04

2K+ 瀏覽量

給定一個連通圖 G(V, E),並且每條邊的權重或成本都已給出。Prim 演算法將從圖 G 中找到最小生成樹。它是一種增長樹方法。此演算法需要一個種子值來啟動樹。種子頂點被擴充套件以形成整個樹。該問題將使用兩個集合來解決。一個集合儲存已選擇的節點,另一個集合儲存尚未考慮的項。從種子頂點開始,它根據最小邊成本獲取相鄰頂點,從而透過... 閱讀更多

最小站臺數問題

Sharon Christine
更新於 2020-06-15 15:48:57

582 瀏覽量

給定到達時間和離開時間的列表。現在問題是要找到鐵路所需的最小站臺數,因為沒有火車在等待。透過按排序順序對所有時間進行排序,我們可以輕鬆找到解決方案,這將很容易跟蹤火車何時到達但尚未離開車站。此問題的時間複雜度為 O(n Log n)。輸入和輸出輸入:到達時間和離開時間的列表。到達:{900, 940, 950, 1100, 1500, 1800} 離開:{910, 1200, 1120, 1130, 1900, 2000} 輸出:所需的最小站臺數:3演算法minPlatform(到達,離開,int n)輸入 - ... 閱讀更多

最小硬幣找零問題

karthikeya Boyini
更新於 2020-06-15 15:51:47

1K+ 瀏覽量

給定一個硬幣列表 C(c1, c2, ……Cn) 和一個值 V。現在問題是要使用最少的硬幣來湊成 V。注意 - 假設有無限數量的硬幣 C在這個問題中,我們將考慮一組不同的硬幣 C{1, 2, 5, 10},每種型別的硬幣都有無限個。為了湊成請求的值,我們將嘗試取任何型別的最少數量的硬幣。例如,對於值 22 - 我們將選擇 {10, 10, 2},... 閱讀更多

針對排序輸入的有效霍夫曼編碼

Sharon Christine
更新於 2020-06-15 16:08:20

526 瀏覽量

在之前的霍夫曼編碼問題中,頻率未排序。如果頻率列表按排序順序給出,則分配程式碼的任務將更加有效。在這個問題中,我們將使用兩個空佇列。然後為每個唯一字元建立一個葉子節點,並將其按頻率遞增的順序插入到佇列中。在這種方法中,演算法的複雜度為 O(n)。輸入和輸出輸入:不同的字母及其按排序順序的頻率 字母:{L, K, X, C, E, B, A, F} 頻率:{1, 1, 2, 2, 2, 2, 3, 4} 輸出:字母的程式碼 L:... 閱讀更多

霍夫曼編碼演算法

karthikeya Boyini
更新於 2022-12-23 11:05:46

32K+ 瀏覽量

霍夫曼編碼是一種無損資料壓縮演算法。在此演算法中,將可變長度程式碼分配給輸入的不同字元。程式碼長度與字元的使用頻率相關。最常出現的字元具有最小的程式碼,而最不常出現的字元則具有更長的程式碼。主要有兩個部分。第一個是建立霍夫曼樹,另一個是遍歷樹以查詢程式碼。例如,考慮一些字串“YYYZXXYYX”,字元 Y 的頻率大於 X,而字元 Z 的頻率最小。因此,Y 的程式碼長度小於... 閱讀更多

鄰接表表示的 Dijkstra 演算法

karthikeya Boyini
更新於 2020-06-15 16:25:50

5K+ 瀏覽量

給定一個圖 G(V, E) 及其鄰接表表示,並提供一個源頂點。Dijkstra 演算法用於查詢從源頂點到圖 G 的任何其他頂點的最小最短路徑。為了解決此問題,我們將使用兩個列表。一個是儲存已被視為最短路徑樹的頂點,另一個將儲存尚未考慮的頂點。在演算法的每個階段,我們找到未考慮的頂點,並且該頂點與源的距離最小。另一個列表用於儲存前驅節點。使用... 閱讀更多

活動選擇問題

Samual Sam
更新於 2020-06-15 16:28:54

4K+ 瀏覽量

給定 n 個不同的活動及其開始時間和結束時間。選擇由一個人解決的最大活動數。我們將使用貪婪方法來找到下一個活動,該活動的完成時間在剩餘活動中最小,並且開始時間大於或等於最後一個所選活動的完成時間。此問題的時間複雜度為 O(n log n),當列表未排序時。當提供排序列表時,複雜度將為 O(n)。輸入和輸出輸入:具有開始和結束時間的不同活動的列表。{(5,... 閱讀更多

鴿巢排序

Sharon Christine
更新於 2020-06-15 15:31:17

827 瀏覽量

這是非比較排序技術的一個例子。它用於專案數量和可能的鍵值範圍大致相同的情況。要執行此排序,我們需要建立一些孔。所需孔的數量由數字範圍決定。在每個孔中,插入專案。最後從孔中刪除並存儲到陣列中以進行排序。鴿巢排序技術的複雜度時間複雜度:O(n+2^k)空間複雜度:O(2^k)輸入和輸出輸入:未排序列表:802 630 20 745 52 300 612 932 78 187 輸出:排序前的資料:802 630 20 745 ... 閱讀更多

迴圈排序

Sharon Christine
更新於 2020-06-15 15:43:42

688 次瀏覽

迴圈排序是一種原地排序演算法。它也是一種基於比較的排序,並且對於任何其他原地排序技術都非常有效。它找到執行排序任務所需的最小記憶體寫入次數。迴圈排序技術的複雜度時間複雜度:O(n^2)空間複雜度:O(1)輸入和輸出輸入:一個無序資料列表:23 63 98 74 20 14 36 45 99 78輸出:排序前陣列:23 63 98 74 20 14 36 45 99 78排序後陣列:14 20 23 36 45 63 74 78 98 99演算法cycleSort(array, size)輸入 - 一個數據陣列,以及其中的總數... 閱讀更多

廣告
© . All rights reserved.