随笔分类 -  算法与数据结构

摘要:最大公约数 通常来说,我们使用『辗转相除法』能够快速高效地求出两个数的「最大公约数」,其实就是欧几里得算法,公式如下: 代码如下,很简单: 最小公倍数 定理 :a、b 两个数的最小公倍数乘以它们的最大公约数等于 a 和 b 本身的乘积 由上述定理可知,在最大公约数的基础上我们可以轻易得到「最小公倍数 阅读全文
posted @ 2019-09-24 23:44 Bylight 阅读(526) 评论(0) 推荐(0)
摘要:二叉树的表示 在研究二叉树的遍历之前,我们需要先看看二叉树的表示方式。 一般来说,我们使用自定义的数据结构或是数组来表示二叉树。 二叉树的数据结构: 数组形式表现二叉树 当我们使用数组形式表现二叉树时,我们将数组第一个节点的索引置为「1」,也就是根节点,如果我们通用性的将其当为「x」,那么它的左孩子 阅读全文
posted @ 2019-09-24 23:20 Bylight 阅读(569) 评论(0) 推荐(0)
摘要:快速幂,就是快速算底数的n次幂。其时间复杂度为 O(logN), 与朴素的O(N)相比效率有了极大的提高。 朴素算法 在要求算出一个数字的n次幂时,最容易想到的便是朴素的循环累乘: 很明显,这种方法的时间复杂度为O(N); 快速幂算法 根据二进制的性质以及编程语言中方便的与运算符 和移位运算符 ,有 阅读全文
posted @ 2019-03-15 19:54 Bylight 阅读(9712) 评论(0) 推荐(4)