在本节中,我们将学习如何进行两个矩阵的乘法。矩阵乘法只有在满足特定条件的情况下才能执行。假设有两个矩阵 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 是图中顶点的数量。输入 -…… 阅读更多