随笔分类 - Algorithm

摘要:数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论。 数组求和 求数组的最大值和最小值 求数组的最大值和次大值 求数组中出现次数超过一半的元素 求数组中元素的最短距离 求两个有序数组的共同元素 求三个数组的共同元素 找出数组中唯一的重复元素 找出出现奇数次的元素 求数组中满足给定和的数对 最大子段和 最大子段积 数组循环移位 字符串逆序 组合问题 ... 阅读全文
posted @ 2012-11-07 12:51 Mr.Rico 阅读 (540) | 评论 (0) 编辑
摘要:在日常工作中,经常需要使用随机算法。比如面对大量的数据,需要从其中随机选取一些数据来做分析。 又如在得到某个分数后, 为了增加随机性, 需要在该分数的基础上, 添加一个扰动, 并使该扰动服从特定的概率分布。本文主要从这两个方面出发,介绍一些算法, 供大家参考。首先假设我们有一个使用的随机函数float frand(), 返回值在(0, 1)上均匀分布。大多数的程序语言库提供这样的函数。在其他的语言如C/C++中, 可以通过间接方法得到。如 frand()= ((float)rand() ) / RAND_MAX; 1, 随机选取数据 假设我们有一个集合A(a_1,…,a_n), 对于... 阅读全文
posted @ 2012-10-18 00:27 Mr.Rico 阅读 (142) | 评论 (0) 编辑
摘要:本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。 本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来前缀匹配和后缀匹配的区别就仅仅在于比较的顺序不同。下文分别从最 简单的前缀蛮力匹配算法和后缀蛮力匹配算法入手,详细的介绍KMP算法和BM算法以及它们的实现。KMP算法首先来看一下前缀蛮力匹配算法的代码( 阅读全文
posted @ 2012-10-17 23:56 Mr.Rico 阅读 (181) | 评论 (0) 编辑
摘要:参考:http://blog.csdn.net/lbsljn/article/details/4277737B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字; 如果B树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡... 阅读全文
posted @ 2012-07-16 15:25 Mr.Rico 阅读 (95) | 评论 (0) 编辑
摘要:汉诺塔(又称河内塔)问题其实是印度的一个古老的传说。 开天辟地的神勃拉玛(和中国的盘古差不多的神吧)在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一 个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上 面。计算结果非常恐怖(移动圆片的次数)18446744073709551615,众僧们即便是耗尽毕生精力也不可能完成金片的移动了。 算法介绍:其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n – 1(有兴趣的可以自己证明试试看)。后来一... 阅读全文
posted @ 2012-06-12 14:07 Mr.Rico 阅读 (7039) | 评论 (0) 编辑
摘要:近日在做一个入职练习中,我遇到了随机数的问题,将分析过程做些整理。本文主要讨论大范围内随机数的产生办法,讨论在随机范围内的等概率问题。一、要求1、产生一个比较大的随机数。2、产生的随机数在随机范围内等概率。二、知识背景我们知道在C语言中有 rand ()函数可以提供随机数,rand ()函数的范围为 0 到 32727。我们假定认为 rand ()产生的随机数在 0 到 32727 范围内是等概率的。如果我们需要得到一个小范围内的随机数,比如 0 到 55 之间的随机数,那我们可以采用 rand ()%55。但是对于我们要得到一个更大范围内的随机数,rand ()便满足不了我们的要求。三、探讨 阅读全文
posted @ 2012-06-02 10:20 Mr.Rico 阅读 (296) | 评论 (0) 编辑