算法
文章平均质量分 72
live_for_you
22222222
展开
-
排序算法比较
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有转载 2013-04-17 19:31:38 · 553 阅读 · 0 评论 -
个人对KMP算法的理解
通过查阅相关书籍和博客,大概总结下KMP算法,主要说一下对next[]数组的理解 字串匹配 S: ababcababa P: ababa 重点在于求P的next[]数组 规定next[1]=0 P的第2个字符为b,与第1个字符a不同,所以next[2]=0 P的第3个字符为a,与第1个字符a相同,所以next[3]=1 P的第3到4的字符为ab,与第1到2的字符ab相同原创 2013-05-07 21:31:06 · 629 阅读 · 0 评论 -
【转】给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
题目: 给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一样。现要求使用该函数构造函数rand7(),使函数rand7()可以随机等概率的生成1-7的整数。 思路: 很多人的第一反应是利用rand5() + rand()%3来实现rand7()函数,这个方法确实可以产生1-7之间的随机数,但是仔细想想可以发现数字生成的概率是不相等的。rand()%3 产生0转载 2013-05-09 16:46:26 · 891 阅读 · 0 评论 -
平衡二叉树
转自http://gengning938.blog.163.com/blog/static/12822538120114164564057/ 对于二叉查找树,尽管查找、插入及删除操作的平均运行时间为O(logn),但是它们的最差运行时间都是O(n),原因在于对树的形状没有限制。 平衡二叉树又称为AVL树,它或者是一棵空树,或者是有下列性质的二叉树:它的左子树和右子树都是平衡转载 2013-04-18 19:19:26 · 964 阅读 · 0 评论