- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 动态规划的关键和精妙之处
动态规划的思想大家都知道,将之前的计算结果存储起来,后面再用到时就直接拿来用,减少计算量。但实际操作确十分精妙,需要一定的技术含量。 有些是根据目的直接求(比如01背包),有些则是在计算过程中会出现最优解,进行比较得到(比如最大子数组和算法) 我从直接求解和过程出现解两个角度来解读动态规划。 01背包问题在求最大价值时涉及到包空间大小和物品个数,我
2017-08-22 00:47:39 1455
原创 自底向上语法分析的本质与原理
语法分析的本质就是是否可以生成一颗语法树,它的叶子节点及终结符与我们程序的符号流一致,存在的正确,不存在的错误。 我们可以这样思考,我们将程序的符号表看做是语法树的叶子节点,按照文法进行反向推到,就是根据叶子节点向上推到根节点。如果我们能成功推到出根节点的话,那么从上往下推导肯定也能推导出来。 我们要按照产生式来推导,就是根据知道了产生式的体,就可以确定它的头,在语
2017-08-21 23:26:40 3804
原创 自顶向下语法分析原理与设计思想
这里重在讲解设计思想和原理,由于时间久远,一些知识的记忆不太清晰,若有不当之处,请多多指出。 编译原理中的自顶向下语法分析的算法步骤有点麻烦,但是原理与设计思想,及其简单,甚至于没有技术含量。 首先解释语法树,语法树中主要包含了终结符与非终结符,什么是终结符,终结符就是不能继续往下扩展,它就是叶子节点的符号,终结符就是我们实际些的代码一一对应的符号,注意这里是一一对应,
2017-08-21 21:03:34 2750
原创 从最短路径角度证明floyd算法正确性
floyd最短路径算法是用于求图中任意两点之间最短路径的经典算法,但是关于其正确性的证明书上以及网上并没有很好的解释。一年前自己从最短路径结果本身出发想出了证明办法,但是一直没有发表,今天和朋友又聊起了这个话题,就整理了思路,写出来,与大家分享。 我们这里从有N个节点的无向图入手进行证明。若图中两个节点不连通,那么经过算法计算后仍为不连通。若它们连通就必然存在一条最短路径。假设任意
2017-08-21 19:18:36 5846 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人