找到 346 篇文章 關於資料結構演算法

資料結構中的幾何分佈

Arnab Chakraborty
更新於 2019-08-27 12:50:58

309 次瀏覽

幾何分佈是離散機率分佈,對於 n = 0, 1, 2, …,具有機率密度函式:$$P\lgroup n\rgroup=p\lgroup1-p\rgroup^{n}$$分佈函式為:$$D\lgroup n\rgroup=\displaystyle\sum\limits_{i=0}^n P\lgroup i \rgroup=1-q^{n+1}$$示例 線上演示#include #include using namespace std; int main(){    const int nrolls = 10000; // 擲骰子次數    const int nstars = 100; // 分佈的最大星數    default_random_engine generator;    geometric_distribution distribution(0.3);    int p[10]={};    for (int i=0; i

資料結構中的二項分佈

Arnab Chakraborty
更新於 2019-08-27 12:41:00

335 次瀏覽

二項分佈是離散機率分佈 Pp(n | N),表示在 N 次伯努利試驗(有兩個可能的結果,用 x = 0 和 x = 1 表示)中獲得 n 次成功的機率。x = 1 表示成功,x = 0 表示失敗。成功的機率為 p,失敗的機率為 q,其中 q = 1 – p。因此,二項分佈可以寫成:$$P_{p}\lgroup n\:\arrowvert\ N\rgroup=\left(\begin{array}{c}N\ n\end{array}\right) p^{n}\lgroup1-p\rgroup^{N-n}$$示例 線上演示#include #include using namespace std; int main(){    const int nrolls = 10000; // 擲骰子次數    const int nstars = 100; // ... 閱讀更多

資料結構中的伯努利分佈

Arnab Chakraborty
更新於 2019-08-27 12:33:29

298 次瀏覽

伯努利分佈是離散分佈,有兩個可能的結果,用 x = 0 和 x = 1 表示。x = 1 表示成功,x = 0 表示失敗。成功的機率為 p,失敗的機率為 q,其中 q = 1 – p。所以$$P\lgroup x\rgroup=\begin{cases}1-p\:for & x = 0\p\:for & x = 0\end{cases}$$這也可以寫成:$$P\lgroup x\rgroup=p^{n}\lgroup1-p\rgroup^{1-n}$$示例 線上演示#include #include using namespace std; int main(){    const int nrolls=10000;    default_random_engine generator;    bernoulli_distribution distribution(0.7);    int count=0; // 統計真值的數量    for (int i=0; i

資料結構中的最小生成樹

Arnab Chakraborty
更新於 2019-08-27 12:29:59

16K+ 次瀏覽

生成樹是無向圖的一個子集,它透過最少的邊將所有頂點連線起來。如果圖中的所有頂點都連線在一起,則至少存在一個生成樹。在一個圖中,可能存在多個生成樹。最小生成樹最小生成樹 (MST) 是連線加權無向圖中所有頂點在一起的邊的子集,並且具有最小的總邊權重。為了匯出 MST,可以使用 Prim 演算法或 Kruskal 演算法。因此,我們將在本章中討論 Prim 演算法。正如我們... 閱讀更多

資料結構中 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

428 次瀏覽

在本節中,我們將瞭解二叉搜尋樹的先序遍歷技術(遞迴)。假設我們有一棵這樣的樹:遍歷順序如下:10, 5, 8, 16, 15, 20, 23演算法preorderTraverse(root):開始    如果根節點不為空,則       列印根節點的值       preorderTraversal(根節點的左子節點)       preorderTraversal(根節點的右子節點)    結束 if 結束示例 線上演示#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演算法postorderTraverse(root):開始    如果根節點不為空,則       postorderTraversal(根節點的左子節點)       postorderTraversal(根節點的右子節點)       列印根節點的值    結束 if 結束示例 線上演示#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:34:58

373 次瀏覽

在本節中,我們將瞭解二叉搜尋樹的層序遍歷技術。假設我們有一棵這樣的樹:遍歷順序如下:10, 5, 16, 8, 15, 20, 23演算法levelOrderTraverse(root):開始    定義佇列 que 用於儲存節點    將根節點插入佇列。    當佇列不為空時,執行       item := 佇列前端的元素       列印 item 的值       如果 item 的左子節點不為空,則          將 item 的左子節點插入佇列       結束 ... 閱讀更多

廣告

© . All rights reserved.