摘要: 字符串编辑距离又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。字符串编辑距离在拼写检查,DNA匹配,相似度分析等方面有重要作用。编辑距离问题不容易直接下手,因为有三种允许的操作类型,我们很难判断哪个字符该删除,哪个字符该修改才能获得最小的编辑距离。这时候就需要考虑该问题繁杂的表象下存在的的一些规律和不变量,寻找问题的子问题以及原问题和子问题的关系。进而找出递推关系,即可写出递归的实现方案,考虑到重复子问题,进而采用带备忘录的自底向上动态规划方法实现。 阅读全文
posted @ 2013-07-07 22:05 苍穹逸影 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 曾经做过的项目里涉及Android客户端向服务器发送请求,服务器访问数据库获得数据并返回给Android客户端。当时Android客户端与服务器的通信已经实现,我只负责客户端布局和数据呈现的部分,近日有遇到类似项目,所以计划完整的研究和实现一下整个通信过程。这是一次尝试发布最基本的Webservice的过程,通过Axis2,不需要安装,快速的实现了Webservice。 阅读全文
posted @ 2013-07-03 23:07 苍穹逸影 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 如果让你写出快速排序的代码,大部分人都应该有清晰的思路。但是如果要求用非递归的形式实现呢,还会这么容易吗,如果换成其他的递归式呢,递归程序转换非递归有没有较为通用的方法。 递归就是一种函数调用,区别只是调用的目标函数是自身。递归调用是在程序栈区实现的,这也就启发我们用栈数据结构去模拟递归过程 递归函数的调用过程可以展开为一颗递归树,树的遍历是经典的递归问题,同时也可以作为递归转非递归的模板。 阅读全文
posted @ 2013-07-01 22:23 苍穹逸影 阅读(2729) 评论(0) 推荐(0) 编辑
摘要: 递归很美,美的让菜鸟找不着北。 阅读代码时我们总是根据函数的调用跳到不同的函数去阅读(除非函数名有很清晰明了),程序执行过程也是不断的跳转,一个函数里调用另一个函数很容易理解,但是函数里调用自己就有些令人迷惑了。 每次遇到递归的程序都有点发怵,主要问题有三个:一是递归程序含义的理解,二是递归实现的机制,三是递归程序复杂度的计算。 本文从这三部分入手,深入理解递归,让这种看似高深的函数调用方法不再神秘和可怕。 阅读全文
posted @ 2013-07-01 20:20 苍穹逸影 阅读(2393) 评论(0) 推荐(0) 编辑
摘要: 创业是一举成名天下知的捷径,但是这条路的凶险只有亲自走的时候才会发现。要有雄心有野心,年轻就是资本,勇敢的去追逐心中的理想。但与此同时,也要理性认识到创业的艰辛,需要深厚的积淀。最后,要成为行动派,想要,更要做到。 阅读全文
posted @ 2013-05-17 19:43 苍穹逸影 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 字符串匹配指的是从文本中找出给定字符串(称为模式)的一个或所有出现的位置。常见算法有最原始的Brute Force算法,著名的KMP算法,Boyer-Moore算法,高效的Sunday算法,还有Horspool,Rabin-Karp等。看似字符串算法中最简单的字符串匹配都有这么多的算法,而且很多算法理解起来还需要花费一些时间。博客中提到的4个算法运行效率是递增顺序,可以看到不同算法的主要区别是发现失配是如果移动最大安全距离进行下一次匹配。BF算法是简单的完全遍历,KMP算法根据模式串特征进行移动,BM算法根据好后缀和坏字符进行移动,Sunday算法根据字符串末位字符的下一位字符进行移动。都是抓住匹配过程中字符串的某个特点,快速排除不可能匹配的情况,进行最有可能的匹配。 阅读全文
posted @ 2013-04-04 21:47 苍穹逸影 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 字符串操作体现出很多的算法思想,在笔试面试中常常出现,能反映出程序员的基本功。除此之外,其中的很多思想,很多变形都是值得仔细体味,认真思考的。本篇博客作为字符串算法专题的目录,给出各个问题的链接。 阅读全文
posted @ 2013-04-04 18:13 苍穹逸影 阅读(223) 评论(0) 推荐(1) 编辑
摘要: 微信和QQ都是腾讯重要的产品,看起来相似,实则有很大的不同。微信和QQ的有着不同的定位。QQ是传统互联网的明星,而微信是移动互联网时代的先锋;在产品交互方式上微信更贴近移动生活;微信具有很强的扩展性。总而言之,作为移动互联网新入口的微信,引领着移动生活的新方式。 阅读全文
posted @ 2013-03-23 16:15 苍穹逸影 阅读(4172) 评论(0) 推荐(0) 编辑
摘要: 很高兴今天启动自己的博客。 作为计算机软件专业的学生,需要不断学习新的知识,也会不断遇到新的问题。我曾无数次从其他人的博客中受到启发,获得灵感,寻到问题的答案。互联网提供了一个开放、共赢的环境。我也希望将自己思考和感悟的点滴整理记录下来,留下我作为IT行业人员成长的印记,同时和更多的人分享自己的心得。 有开通博客的想法已经很久了,但由于懒惰,拖延的问题一直到今日才实现这个想法。空谈误国,实干兴邦。第一条博客,也提醒自己,有想法固然重要,但只有行动才能证实和实现想法。马上去行动,不要为自己的懒惰和拖延找借口。 博客中的某些想法和观点可能有偏差,希望一起讨论,共同进步。 阅读全文
posted @ 2013-03-23 11:09 苍穹逸影 阅读(147) 评论(0) 推荐(0) 编辑