算法和数据结构
算法和数据结构的内容
刘烟火
这个作者很懒,什么都没留下…
展开
-
算法与数据结构砍柴路--位运算
运算 运算符 举例 或 | 0011------0110------0111 与 & 0011------0110------0010 异或 ^ 同则0, 异则1 按位取反 ~ 0则1,1则0~x = -x -1 判断奇偶 x & 1 , 结果为1 表示奇,结果为0表示偶 x & (x-1) ,将最低位的1变为0 x & (-1<<n) 将x最右遍的n清零 (x>>n)&1,获取第n位的值 x|(1<...原创 2020-10-31 20:23:03 · 175 阅读 · 1 评论 -
算法与数据结构砍柴路--深度优先和广度优先
深度优先: 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。这个算法会尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。 广度优先: 广度优先搜索算法(英语:Breadth-First Search,缩写为BFS)。简单的说,BFS是从根开始,沿着原创 2020-09-27 21:38:44 · 99 阅读 · 0 评论 -
算法与数据结构砍柴路--二叉树
文章目录二叉数定义二叉树遍历二叉搜索树 二叉数定义 二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。 二叉树遍历 前序遍历:根,左,右 中序遍历:左,根,右 后序遍历:左,右,根 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2] 来源:力扣(原创 2020-09-26 19:46:03 · 86 阅读 · 0 评论 -
算法与数据结构砍柴路--回溯和分治
分治 说明:在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 解题步骤: 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题; 合并:将各个子问题的解合并为原问题的解。 解题模板: def func(args): if 终止条件:原创 2020-09-20 17:57:25 · 106 阅读 · 0 评论