在本節中,我們將學習如何進行兩個矩陣的乘法。矩陣乘法只有在滿足特定條件的情況下才能執行。假設有兩個矩陣 A 和 B,它們的維度分別是 A (m x n) 和 B (p x q),那麼只有當 n = p 時才能找到結果矩陣。結果矩陣 C 的階數將為 (m x q)。演算法matrixMultiply(A, B):假設 A 的維度為 (m x n),B 的維度為 (p x q) 開始 如果 n 不等於 p,則退出 否則定義 C ... 閱讀更多
步數計數法是分析演算法的一種方法。在這種方法中,我們計算每條指令執行的次數。從中,我們將嘗試找出演算法的複雜度。假設我們有一個執行順序搜尋的演算法。假設每條指令需要 c1、c2…… 的時間來執行,那麼我們將嘗試找出這個演算法的時間複雜度演算法執行次數成本seqSearch(arr, n, key)i := 0while i < n, do 如果 arr[i] = key,則 break 結束 if迴圈返回 i1n+1n0/11c1c2c3c4c5現在,如果我們透過將…… 閱讀更多
霍夫曼編碼是一種無損資料壓縮演算法。在這個演算法中,為輸入的不同字元分配可變長度程式碼。程式碼長度與字元的使用頻率有關。最頻繁的字元具有最短的程式碼,而最不頻繁的字元具有較長的程式碼。主要有兩個部分。第一個是建立霍夫曼樹,另一個是遍歷樹以查詢程式碼。例如,考慮一些字串“YYYZXXYYX”,字元 Y 的頻率大於 X,而字元 Z 的頻率最低。因此,Y 的程式碼長度小於 X,X 的程式碼…… 閱讀更多
所有對最短路徑演算法,也稱為弗洛伊德-沃舍爾演算法,用於查詢給定加權圖中的所有對最短路徑問題。該演算法的結果是生成一個矩陣,該矩陣表示從任何節點到圖中所有其他節點的最小距離。首先,輸出矩陣與給定的圖成本矩陣相同。之後,將使用所有頂點 k 作為中間頂點更新輸出矩陣。該演算法的時間複雜度為 O(V3),其中 V 是圖中頂點的數量。輸入 -…… 閱讀更多