分类:: 算法

0

常见算法

常见算法 常见算法,持续整理中 数字的运算最大公约数1234int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b);} 辗转相除法,以上算法要求a与b都是正整数,不要求a与b的大小关系。 数字的约数个数12345678910111213141516171819202122232425262728293031323334

0

树的相关算法以及树转换为二叉树

树的相关算法以及树转换为二叉树 树的相关概念二叉树 Binary Tree 每个节点可有左右区分的两个子节点(子树);节点的值可能相同(代码中不能根据值判断是否为同一个节点); 完全二叉树 二叉树的基础上,树的每一行都是满的(2^(k-1)个节点在第k行),除了最后一行。最后一行的节点从左到右是满的。 满二叉树 二叉树的基础上,树的每一行都是满的(2^(k-1)个节点在第k行)。 二叉排序树 Bi

0

常见算法复杂度

常见算法复杂度 常见算法复杂度,持续整理中 深度优先搜索(DFS)与广度优先搜索(BFS)这两个算法可以用于图也可以用于树,用于树的情况往往会简单。 使用邻接矩阵存储图: O(n^2) 一共n个点,每个点都要访问一遍,每个点都要读取邻接矩阵获得子节点,需要n次,因此是n*n。 使用邻接表存储图:O(|n| + |e|) 注意:在树中,e = n - 1,因为只有根节点没有上面的边,其他点都有。所以