算法
崔先生的博客
知行合一
展开
-
二叉树的前序、中序、后序遍历
二叉树的前序、中序、后序遍历是树相关的经典问题,也经常被面试官拿来考察面试者的基本功,故对此做一个简单的总结:先放一棵二叉树:一、前序遍历:前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则:(1)访问根结点。(2)前序遍历左子树。(3)前序遍历右子树 。需要注...原创 2018-07-30 11:58:14 · 1317 阅读 · 0 评论 -
面试常问的六大排序算法
先把代码贴上来,以后我会详细解释每一种排序的原理,以下每种代码都经过了验证和代码简化。1.冒泡排序def bubble_sort(nums): for i in range(len(nums)): for j in range(len(nums)-i-1): if nums[j] > nums[j+1]: ...原创 2018-07-26 21:00:33 · 3706 阅读 · 0 评论 -
【Python算法】遍历(Traversal)、深度优先(DFS)、广度优先(BFS)
图结构: 非常强大的结构化思维(或数学)模型。如果您能用图的处理方式来规范化某个问题,即使这个问题本身看上去并不像个图问题,也能使您离解决问题更进一步。 在众多图算法中,我们常会用到一种非常实用的思维模型--遍历(traversal):对图中所有节点的探索及访问操作。 图的一些相关概念: 简单图(Simple graph):无环并且无平行边的图. 路(path):内...转载 2018-08-31 15:59:35 · 3795 阅读 · 0 评论 -
全面解析回溯法:算法框架与问题求解
摘了一段来自百度百科对回溯法思想的描述:在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。 若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍...转载 2018-09-04 10:13:28 · 1204 阅读 · 0 评论