摘要: 接触过Javascript的朋友都知道,虽然Javascript看起来很像Java,但实际上它的编程思想与Java等主流语言有很大的不同。它既有LISP语言的影子,也可以用主流面向对象语言的方法来组织程序。本文尝试从Javascript特有的JSON结构、闭包和原型三方面入手,探索Javascript独特的运行机制和实现面向对象的模式。最后以Javascript为中介,探讨LISP语言与OO语言的关系。 阅读全文
posted @ 2013-12-09 16:25 六指琴魔 阅读(348) 评论(1) 推荐(0) 编辑
摘要: 在学习动态规划法之前,我们先来了解动态规划的几个概念1、 阶段:把问题分成几个相互联系的有顺序的几个环节,这些环节即称为阶段。2、 状态:某一阶段的出发位置称为状态。3、 决策:从某阶段的一个状态演变到下一个阶段某状态的选择。4、 状态转移方程:前一阶段的终点就是后一阶段的起点,前一阶段的决策选择导... 阅读全文
posted @ 2014-04-22 14:48 六指琴魔 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 计算机专业学习编程语言学到递归时会举一个汉诺塔问题的经典例子:有A,B,C三根柱子,A柱上按大小顺序从下往上摞着n片圆盘,现在要将这些圆盘从A柱移至C柱,并保持上小下大的顺序。移动规则如下:1、每次只能移动一个盘。2、大盘不能放在小盘上。 用非递归方法要一大串代码,而递归方法就非常简短。递归算法C语... 阅读全文
posted @ 2014-04-17 13:48 六指琴魔 阅读(5342) 评论(0) 推荐(6) 编辑
摘要: 教科书对算法时间复杂度的描述用了很多伟光正的数学语言,说的糊里糊涂,看得让人头晕晕。这样解释看看能否清晰些:时间复杂度的感性认识:一句话,基本操作执行的次数。一个算法基本操作执行次数越多,时间复杂度越大,反之越小。但在实际操作中,不会真的就去计算具体执行了多少次,而是先分拣出2方面内容,1是算法的基... 阅读全文
posted @ 2014-04-16 16:43 六指琴魔 阅读(1338) 评论(4) 推荐(7) 编辑