算法与数据结构
文章平均质量分 59
chentingpc
个人兴趣:人工智能、分布式计算与互联网、移动与智能终端操作系统。
展开
-
菜鸟编程学习日志:对于节省编程时间之己见
老鸟的情况我不了解,不敢乱说。 但就编程菜鸟的情况来说,很多时候我们写程序很快,改程序却要花上成倍的时间。所以我觉得,现在节省编程时间的主要就是节省调试的时间。 我认为之所以现在调试耗时长,原因主要有两个方面: 1、没有把算法的框架、细节都考虑、设计清楚,就随意地写,这样一编译就发现错误,好不容易发现了一个算法的错误,改过之后,再一编译,噢,又错了,哦,原来还有一个算法错误.原创 2009-11-16 22:44:00 · 741 阅读 · 0 评论 -
【精】图编程总结(编程过程的总结)
编程过程与思维状态 编程是一个需要注意力高度集中的过程,不仅是编码的过程,而且构建算法与数据结构的过程也必须如此。因为整个过程可能有很多状态,稍微不注意就会忽略或陷入混乱。人是高度进化的动物,能够处理很多出乎意料之外的事情,但是计算机却没有办法,如果出现之前未考虑的情况,计算机最可能的反应就是出错与崩溃。 然而就算注意力完全集中,一个人大脑中的缓存也是有限的,不可能同时保持着那么多状态与变量的状态,但人脑不会内存溢出,取而代之的是混乱。我们要清晰编程,而不要混乱编程。因此就必须应用从上至下,逐步求精的过原创 2010-12-13 13:36:00 · 734 阅读 · 0 评论 -
Poj1094拓扑排序总结
这道题目不是什么难题,但是我做了蛮长时间。主要是刚开始会有各种困难。 算法其实不难,就是先拓扑排序,排序过程中可以检查环路,没有环路之后检查排序节点是否都依次相连。拓扑排序与回路判断的算法:可以用DFS,在顶点第一次被访问时标记(1),其下顶点都被访问后再次标记(-1),并且将其“退栈顺序”记录下来,退栈顺序就是拓扑序,而访问过程中遇到标记为1的顶点就说明有回路。这个算法利用了DFS产生的深度遍历树的性质,深度优先树真是一棵神奇的树啊。有一个缺陷是,我现在还没办法不用递归来实现这个算法,也就是用原创 2010-12-19 22:32:00 · 709 阅读 · 0 评论 -
Boj1004最长递增子序列总结
最长递增子序列应该是属于动态优化中最简单的那种题目了吧,但是,对一个刚刚入手动态优化的人来说,仍然不是一件简单的事情。因为最优子结构的寻找是变化多端的,在最长递增子序列中,最优子结构的关键是截止至某个数,包括此数在内的最长子序列,来自它前面的比它小的数为结尾的最长子序列加一。这个结构的发现,将大大化简整个问题。由此(以及过往的经验)可知,对于数据的结构的洞察往往是通向一个更优算法的关键。 这道题并不只是需要最长子序列,而需要更多,然而,更多的要求同样来自于对于一组数据的结构的洞察,我们可以看到一个由给原创 2010-12-24 23:42:00 · 673 阅读 · 0 评论 -
构造二叉树编程小结
我想谈谈我写通过先序遍历与中序遍历来构造二叉树的一些心得体会。 当我刚看到这个题目的时候,我觉得挺简单的,因为思路也很清晰,模块、接口很容就想出来了,但我在实际解决问题的过程中却遇到了不少障碍阻扰。 障碍一:字符串输入的障碍。这其实不是太大的困难,主要是对于相应的STL不太熟悉。查了一下STL手册,不久就写出来了。 障碍二:对于引用与内存分配的理解不够深入。这是一个较大的困难,纠结了我很长时间。遇到的问题是,在子函数中创建的新的树节点,在另一个子函数中都无法访问。之前怀疑是子函数结束后其分配的空间原创 2010-11-19 21:26:00 · 1218 阅读 · 0 评论 -
boj contest, C++
竞价抢车位<br />算法分为两个模块,第一个模块是典型的计算几何问题,给定一个简单多边形,计算包含其中(不包括边上的点)的整点个数。第二个模块是给定车位数(等于第一个模块计算结果的整点数),求出价。第一个模块的算法没有错误,虽然用到了double的比较,但是,没有出问题(这并不是什么好运,因为我也花了大量时间测试这个模块)。第二个模块虽然没有用标识的方法把两个独立数组整合到一起,但正常情况下也不会有问题,但是有一个极端的输入下会出现问题,当已经出价的当中出现同一价位的分开输入且准备出价的当中也有相同价位时原创 2011-03-16 17:25:00 · 1165 阅读 · 1 评论