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

DFS 和 BFS 在資料結構中的應用

Arnab Chakraborty
更新於 2019-08-27 12:25:37

18K+ 瀏覽量

在這裡我們將瞭解圖的 DFS 和 BFS 演算法的不同應用。DFS 或深度優先搜尋用於不同的地方。一些常見的用途是 -如果我們在無權圖上執行 DFS,則它將為所有對最短路徑樹建立最小生成樹我們可以使用 DFS 檢測圖中的迴圈。如果我們在 BFS 期間獲得一條後向邊,則必須存在一個迴圈。使用 DFS,我們可以在兩個給定頂點 u 和 v 之間找到路徑。我們可以執行拓撲排序用於根據作業之間給定的依賴關係來安排作業。拓撲排序 ... 閱讀更多

圖及其遍歷演算法

Arnab Chakraborty
更新於 2023-09-08 23:02:20

46K+ 瀏覽量

在本節中,我們將瞭解什麼是圖資料結構,以及它的遍歷演算法。圖是一種非線性資料結構。它由一些節點及其連線的邊組成。邊可能是定向的或無向的。該圖可以表示為 G(V, E)。以下圖可以表示為 G({A, B, C, D, E}, {(A, B), (B, D), (D, E), (B, C), (C, A)})圖有兩種型別的遍歷演算法。它們被稱為廣度優先搜尋和深度優先搜尋。廣度優先搜尋 (BFS)廣度優先搜尋 (BFS) 遍歷是一種演算法,... 閱讀更多

資料結構中的二叉搜尋樹

Arnab Chakraborty
更新於 2019-08-27 12:13:24

602 瀏覽量

二叉搜尋樹是具有某些屬性的二叉樹。這些屬性如下所示 -每個二叉搜尋樹都是一個二叉樹每個左孩子都將儲存小於根的值每個右孩子都將儲存大於根的值理想的二叉搜尋樹不會重複相同的值兩次。假設我們有一棵這樣的樹 -這棵樹是一個二叉搜尋樹。它遵循所有提到的屬性。如果我們以中序遍歷模式遍歷元素,我們可以得到 5、8、10、15、16、20、23。讓我們看看一段程式碼來了解我們如何在... 閱讀更多

資料結構中的先序樹遍歷

Arnab Chakraborty
更新於 2019-08-27 12:07:28

427 瀏覽量

在本節中,我們將瞭解二叉搜尋樹的先序遍歷技術(遞迴)。假設我們有一棵這樣的樹 -遍歷順序如下:10、5、8、16、15、20、23演算法先序遍歷(根):開始    如果根不為空,則       列印根的值       先序遍歷(根的左子樹)       先序遍歷(根的右子樹)    結束如果結束示例 線上演示#include using namespace std; class node{    public:       int h_left, h_right, bf, value;       node *left, *right; }; class tree{    private:       node *get_node(int key);   ... 閱讀更多

資料結構中的後序樹遍歷

Arnab Chakraborty
更新於 2020-01-21 12:17:37

386 瀏覽量

在本節中,我們將瞭解二叉搜尋樹的後序遍歷技術(遞迴)。假設我們有一棵這樣的樹 -遍歷順序如下:8、5、15、23、20、16、10演算法後序遍歷(根):開始    如果根不為空,則       後序遍歷(根的左子樹)       後序遍歷(根的右子樹)       列印根的值    結束如果結束示例 線上演示#include using namespace std; class node{    public:       int h_left, h_right, bf, value;       node *left, *right; }; class tree{    private:       node *get_node(int key);   ... 閱讀更多

資料結構中的二叉樹遍歷

Arnab Chakraborty
更新於 2019-08-27 11:23:47

929 瀏覽量

在本節中,我們將瞭解不同的遍歷演算法來遍歷二叉搜尋樹中存在的鍵。這些遍歷是中序遍歷、先序遍歷、後序遍歷和層序遍歷。假設我們有一棵這樣的樹 -中序遍歷順序如下 - 5 8 10 15 16 20 23先序遍歷順序如下 - 10 5 8 16 15 20 23後序遍歷順序如下 - 8 5 15 23 20 16 10層序遍歷順序如下 - 10、5、16、8、15、20、23演算法中序遍歷(根):開始    如果根不... 閱讀更多

資料結構中的二叉樹及其屬性

Arnab Chakraborty
更新於 2019-08-27 11:04:14

4K+ 瀏覽量

在本節中,我們將瞭解二叉樹資料結構的一些重要屬性。假設我們有一棵這樣的二叉樹。一些屬性是 -第'l'層的最大節點數將為$2^{l-1}$。這裡層級是從根到節點的路徑上的節點數,包括根本身。我們認為根的層級是 1。高度為 h 的二叉樹中存在的最大節點數為$2^{h}-1$。這裡高度是從根到葉路徑上的最大節點數。在這裡,我們認為一棵樹的高度為... 閱讀更多

資料結構中的二叉樹表示

Arnab Chakraborty
更新於 2019-08-27 10:47:48

15K+ 瀏覽量

在這裡我們將瞭解如何在計算機記憶體中表示二叉樹。有兩種不同的表示方法。這些是使用陣列和使用連結列表。假設我們有一棵這樣的樹 -陣列表示透過使用層序方式掃描元素來儲存樹資料。因此,它按層儲存節點。如果缺少某些元素,則為其保留空白空間。上面樹的表示如下 -12345678910111213141510516-81520-------23索引 1 儲存根,它有兩個子節點 5 和 16,它們分別位於位置 2 和 3。一些子節點是... 閱讀更多

資料結構中陣列的操作

Arnab Chakraborty
更新於 2019-08-27 10:38:25

689 瀏覽量

在這裡,我們將瞭解陣列資料結構的一些基本操作。這些操作是 -遍歷插入刪除搜尋更新遍歷是掃描陣列的所有元素。插入操作是在陣列的給定位置新增一些元素,刪除是從陣列中刪除元素並在刪除後更新其他元素的相應位置。搜尋是在陣列中查詢存在的某些元素,更新是在給定位置更新元素的值。讓我們看看一個 C++ 示例程式碼以獲得更好的理解。示例 線上演示#include #include using namespace std; main(){    vector arr;    //插入元素 ... 閱讀更多

資料結構中的均攤時間複雜度

Arnab Chakraborty
更新於 2019-08-27 09:15:10

896 瀏覽量

均攤分析這種分析用於偶爾的操作非常慢,但大多數執行非常頻繁的操作都更快。在資料結構中,我們需要對雜湊表、不相交集等進行均攤分析。在雜湊表中,大多數情況下搜尋時間複雜度為 O(1),但有時會執行 O(n) 操作。當我們想要在雜湊表中搜索或插入元素時,在大多數情況下,它是在常數時間內完成任務,但是當發生衝突時,它需要 O(n) 次操作來解決衝突。聚合方法聚合方法用於... 閱讀更多

廣告