码迷,mamicode.com
首页 >  
搜索关键字:算法 递归    ( 98246个结果
冒泡法排序
冒泡法排序的算法思想是: 通过无序区中相邻记录关键字间的比较和位置交换,使关键字的记录如气泡一般逐渐往上“漂浮”至“水面”。整个算法是从最下面的记录开始,对每两个相邻的关键字进行比较,且使关键字较小的记录换至关键字较大的记录之上,使得经过一趟冒泡排序后,关键字最小的记录到达最上端,接着,再在剩下的记...
分类:其他好文   时间:2014-05-29 01:11:50    阅读次数:352
笔试算法题(43):布隆过滤器(Bloom Filter)
议题:布隆过滤器(Bloom Filter)分析:BF由一个很长的二进制向量和一系列随机映射的函数组成,通过多个Hash函数将一个元素映射到一个Bit Array中的多个点,查询的时候仅当所有的映射点都为1才能判断元素存在于集合内;BF用于检索一个元素是否在一个集合中,记忆集合求交集;优点是空间 和...
分类:其他好文   时间:2014-05-29 00:18:07    阅读次数:324
设计模式小计——23种设计模式2
模板方法模式Template Method Pattern定义一个操作的算法的框架,是的子类可以不改变算法结构即可重定义该算法一些特定步骤public abstract class AbstractClass{//抽象模板类protected abstract void method1();//算法...
分类:其他好文   时间:2014-05-29 00:11:54    阅读次数:309
[leetcode]_Path Sum I && II
都是考查DFS。经典回溯算法,问题在于我对该类型的代码不熟悉,目前以参考别人的代码,然后加上自己的实现为主,通过类似的题目加强理解。一、给定一棵二叉树,判断是否存在从root到leaf的路径和等于给定值sum,存在返回true,否则返回false。思路:DFS。代码: 1 private b...
分类:其他好文   时间:2014-05-28 23:51:25    阅读次数:389
笔试算法题(44):动态规划(Dynamic Programming)
议题:动态规划(Dynamic Programming)分析:DP主要用于解决包含重叠子问题(Overlapping Subproblems)的最优化问题,其基本策略是将原问题分解为相似的子问题,通过求解并保存最简单子问题的解,然后逐步合并成为原问题的解,由于需 要查询子问题的解,所以需要一个表格记...
分类:其他好文   时间:2014-05-28 23:47:18    阅读次数:463
笔试算法题(45):AC自动机(Aho-Corasick Automation)
议题:AC自动机(Aho-Corasick Automation)分析:此算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一;一个常见的例子就是给定N个单词,给定包含M个字符的文章,要求确定多少个给定的单词在文章中出现过;AC自动机在匹配文本时不需要回溯,处理时间复杂度与pattern无关...
分类:其他好文   时间:2014-05-28 23:00:00    阅读次数:236
求解一个数组中连续元素最大值
第一种实现是以O(N3) 即以n的三次方实现的,这个算法很简单,想法特别明显第二种以O(N2) 即以n的二次方实现,算法简单,但是仍然不够好第三种 O(N*log(N)) ,以n乘以log(N),采取分治法解决问题,当然也采取了递归的思想。第四种O(N),这个方法就无敌了,线性时间,如果数组是在磁盘...
分类:其他好文   时间:2014-05-28 22:43:28    阅读次数:295
编程算法基础-2.7作业-通讯编码-格式检查
作业通信编码如果通信的物理设备仅仅能表示1和0两种状态。1和0状态都不能持续太久,否则物理设备会出现问题。因而人们设计出一种变通的方法:多个0后人为地补入一个1多个1后人为地补入一个0当然,在解码的时候,要对应处理。以下我们用串来模拟这个算法。如果有须要通信的串:String s = "101010...
分类:其他好文   时间:2014-05-28 22:28:12    阅读次数:368
尾递归
【尾递归】 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成....
分类:其他好文   时间:2014-05-28 21:50:46    阅读次数:367
时间复杂度
时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。我们可以记住一句话,“算法中的基本操作的执行次数,为算法的时间复杂度”。那么,什么是基本操作呢:基本操作就是算...
分类:其他好文   时间:2014-05-28 21:35:22    阅读次数:278
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!