本文通过简单的事例阐述字符串对比的算法思想,并用java给予实现。该算法可以用于求两个字符串的子串、最大子串等。...
分类:
编程语言 时间:
2014-08-29 14:40:28
阅读次数:
216
作者(Alex Rodriguez, Alessandro Laio)提出了一种很简洁优美的聚类算法, 可以识别各种形状的类簇, 并且其超参数很容易确定.
算法思想
该算法的假设是类簇的中心由一些局部密度比较低的点围绕, 并且这些点距离其他有高局部密度的点的距离都比较大. 首先定义两个值: 局部密度...
分类:
其他好文 时间:
2014-08-28 19:33:05
阅读次数:
301
1. 概述排序算法是计算机技术中最基本的算法,许多复杂算法都会用到排序。尽管各种排序算法都已被封装成库函数供程序员使用,但了解排序算法的思想和原理,对于编写高质量的软件,显得非常重要。本文介绍了常见的排序算法,从算法思想,复杂度和使用场景等方面做了总结。2. 几个概念(1)排序稳定:如果两个数相同,...
分类:
其他好文 时间:
2014-08-28 13:00:49
阅读次数:
217
最近在研究一些字符串匹配算法,也是由于工作上的需要,强力推荐一本书《柔性字符串匹配》,一本很好的书。网上可以随时搜索到。还是说正题吧。BNDM算法的思想来源于BDM算法思想,类似于shitf-and和kmp之间的区别吧(也不知道是不是准确,有错望大家多指点)。前者都是用位运算模拟后者。好了,那就.....
分类:
其他好文 时间:
2014-08-22 22:26:09
阅读次数:
296
1. 括号匹配的四种可能性:①左右括号配对次序不对②右括号多于左括号③左括号多于右括号④左右括号匹配正确2. 算法思想:1.顺序扫描算数表达式(表现为一个字符串),当遇到三种类型的左括号时候让该括号进栈;2.当扫描到某一种类型的右括号时,比較当前栈顶元素是否与之匹配,若匹配,退栈继续推断;3.若当前...
分类:
其他好文 时间:
2014-08-21 19:00:14
阅读次数:
167
1、算法思想
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。
(1) 分治法的基本思想
分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。
(2)快速排序的...
分类:
其他好文 时间:
2014-08-21 09:52:02
阅读次数:
267
在前面三节排序算法中,我们分别分析了不同策略,思想用于排序,而这些算法都是基于数据间的比较来确定顺序的。假设我不用比较,换一种思路,那么就可以达到时间复杂度为O(n)的排序算法,当然是以付出额外的空间为代价的。一、基本思想线性时间排序的算法思想:(1):在计数排序中,利用比x小或等的元素个数和的来确...
分类:
其他好文 时间:
2014-08-21 00:00:53
阅读次数:
363
递归就是直接或间接调用自身。算法思想:原问题可分解子问题(必要条件),原与分解后的子问题相似(递归方程),分解次数有限(子问题有穷),最终问题可直接解决(递归边界),经典问题有:幂运算、阶乘、组合数、斐波那契数列、汉诺塔等。这里详细介绍:
快速幂的实现;
斐波那契数列的矩阵加速实现;...
分类:
其他好文 时间:
2014-08-17 21:26:22
阅读次数:
397
快速排序中的算法思想
1. 分治思想
分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。
我们可以利用分治思想将杂乱无序的数组Arr[p,,r]分为以下几个步骤
分类:
其他好文 时间:
2014-08-15 01:26:06
阅读次数:
222
Dremel是一个具有可扩展性和交互性,专用于分析只读嵌套数据的查询系统。它本身对多级操作数和柱状数据布局的融合使它得以在秒级的反应时间内对有万亿数量级行记录的表进行集成语句查询。这个系统在谷歌包含数以千计的CPU和PT级的数据量,并有着上千名使用者。这篇论文将会介绍Dremel的体系结构以及其实现,并阐述它如何实现基于MapReduce的计算。本文将呈现一种全新的嵌套式数据柱状存储方式并通过一个基于几千节点的样例系统实验分析性能。...
分类:
Web程序 时间:
2014-08-08 16:18:16
阅读次数:
337