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

資料結構中的鄰接表

Arnab Chakraborty
更新於 2019年8月27日 13:45:56

4K+ 次瀏覽

圖是一種非線性資料結構。它使用節點表示資料,並使用邊表示它們之間的關係。一個圖 G 包含兩個部分:頂點和邊。頂點用集合 V 表示,邊用集合 E 表示。所以圖的表示法是 G(V, E)。讓我們來看一個例子來了解一下。在這個圖中,有五個頂點和五條邊。這些邊是有向的。例如,如果我們選擇連線頂點 B 和 D 的邊,則源頂點是 B,目標頂點是 D。所以我們可以從 B 移動到 D,但不能從… 閱讀更多

資料結構中排序方法的比較

Arnab Chakraborty
更新於 2019年8月27日 13:43:07

6K+ 次瀏覽

在這裡我們將看到一些排序方法。有 200 多種排序技術。我們將看到其中幾種。一些排序技術是基於比較的排序,一些是非基於比較的排序技術。基於比較的排序技術包括氣泡排序、選擇排序、插入排序、歸併排序、快速排序、堆排序等。這些技術被認為是基於比較的排序,因為在這些技術中,值被比較,並在不同階段被放置到排序位置。在這裡我們將看到這些技術的時空複雜度。分析型別氣泡排序選擇排序插入排序歸併排序快速排序堆排序最佳情況O(n2)O(n2)O(n)O(log n)O(log n)O(logn)平均情況O(n2)O(n2)O(n2)O(log n)O(log n)O(log n)最壞情況O(n2)O(n2)O(n2)O(log n)O(n2)O(log n)一些排序演算法是… 閱讀更多

資料結構中搜索方法的比較

Arnab Chakraborty
更新於 2019年8月27日 13:39:01

5K+ 次瀏覽

在不同的情況下,我們執行不同的搜尋方案來查詢一些鍵。在本節中,我們將看到兩種搜尋技術,順序搜尋和二分搜尋,它們之間有什麼基本區別。順序搜尋二分搜尋時間複雜度為 O(n)時間複雜度為 O(log n)在常數時間內查詢位於第一個位置的鍵在常數時間內查詢位於中間位置的鍵容器中元素的順序不會影響。容器中的元素必須排序陣列和連結串列可以用來實現它它不能直接在連結串列中實現。我們需要改變基本的規則… 閱讀更多

資料結構中的棧 ADT

Arnab Chakraborty
更新於 2019年8月27日 13:36:02

22K+ 次瀏覽

抽象資料型別是一種特殊的資料型別,其行為由一組值和一組操作定義。“抽象”關鍵字的使用是因為我們可以使用這些資料型別,我們可以執行不同的操作。但是這些操作是如何工作的,對使用者來說是完全隱藏的。ADT 是由基本資料型別構成的,但操作邏輯是隱藏的。在這裡我們將看到棧 ADT。這些是棧 ADT 的一些操作或函式。isFull(),用於檢查棧是否已滿isEmpty(),用於檢查棧是否為空… 閱讀更多

資料結構中的凸包示例

Arnab Chakraborty
更新於 2019年8月27日 13:34:33

2K+ 次瀏覽

在這裡我們將看到一個關於凸包的例子。假設我們有一組點。我們必須透過取較少的點來做一個多邊形,這將覆蓋所有給定的點。在本節中,我們將看到 Jarvis March 演算法來獲得凸包。Jarvis March 演算法用於從給定的一組資料點中檢測凸包的角點。從資料集的最左點開始,我們透過逆時針旋轉將點保持在凸包中。從當前點,我們可以透過檢查… 閱讀更多

資料結構中的最優二叉搜尋樹

Arnab Chakraborty
更新於 2019年8月27日 13:03:53

1K+ 次瀏覽

一組整數按排序順序給出,另一個數組 freq 為頻率計數。我們的任務是建立一個具有這些資料的二叉搜尋樹,以找到所有搜尋的最小成本。建立一個輔助陣列 cost[n, n] 來解決和儲存子問題的解決方案。成本矩陣將儲存資料,以便自底向上地解決問題。輸入- 節點作為鍵值和頻率。鍵 = {10, 12, 20} 頻率 = {34, 8, 50}輸出- 最小成本為 142。這些是從給定值中可能得到的 BST。對於情況 1,成本… 閱讀更多

資料結構中的負二項分佈

Arnab Chakraborty
更新於 2019年8月27日 12:54:07

103 次瀏覽

負二項分佈是一種隨機數分佈,它將根據負二項離散分佈產生整數。這被稱為帕斯卡分佈,因此負二項分佈可以寫成$$P\lgroup i\arrowvert k,p\rgroup=\lgroup \frac{k+i-1}{i}\rgroup p^{k}\lgroup 1-p\rgroup^{i}$$示例 線上演示#include #include using namespace std; int main(){    const int nrolls = 10000; // 擲骰子的次數    const int nstars = 100; // 分佈的最大星數    default_random_engine generator;    negative_binomial_distribution distribution(3,0.5);    int p[10]={};    for (int i=0; i

資料結構中的幾何分佈

Arnab Chakraborty
更新於 2019年8月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年8月27日 12:41:00

335 次瀏覽

二項分佈是獲得 N 次伯努利試驗中 n 次成功的離散機率分佈 Pp(n | N)(具有由 x = 0 和 x = 1 標記的兩個可能的結果。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年8月27日 12:29:59

16K+ 次瀏覽

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

廣告