
算法和数据结构
文章平均质量分 75
ToBeAndNotToBe
这个作者很懒,什么都没留下…
展开
-
转--常用算法
<br />转自ChinaItLab<br /> 常见排序算法的实现(一)→插入排序 插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止。<br /> 算法的复杂度也是简单的,排序第一个需要1的复杂度,排序第二个需要2的复杂度,因此整个的复杂度就是<br /> 1 + 2 + 3 + …… + N = O(N ^ 2)的复杂度。[详细内容] <br /><b转载 2010-09-25 18:30:00 · 784 阅读 · 0 评论 -
字符串匹配算法
本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来转载 2012-02-04 15:21:35 · 3279 阅读 · 0 评论 -
TreeMap实现
TreeMap使用红黑二叉树实现。红黑二叉树:a. 根节点是黑色的;b. 红色节点的儿子节点是黑色的;c. 任何一个节点到空节点的所有路径上必包含相同数据的黑色节点;d. 叶子节点的子节点是黑色节点 假设一颗红黑树的黑色节点个数为R,那么这棵树的最短高度为R,最大长度为2R所以h先看插入:第一步,先原创 2012-02-04 01:21:41 · 6989 阅读 · 0 评论 -
好记性不如烂笔头(1)
1.mysql join/order by/group:Join 的时候最好选择小结果集驱动大结果集Join 语句中的被驱动表的join条件最好加上索引Join buffer 大小的设置Order by 假如是根据有序索引直接获取有序数据 不用进行任何排序操作无索引时候可以将排序字段和定位它所对应的行索引 排序后再去数据库中取需要的那些字段或者是一次性将所有需要的字段先放原创 2012-01-11 22:08:56 · 2638 阅读 · 0 评论 -
Bloom Filter
查询利器-bloom-filter详解布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。本文着重于在实现Bloom Filter的时候会使用到的一些技巧。布隆过滤器的原理不难理解转载 2012-01-11 11:23:48 · 2882 阅读 · 0 评论 -
堆排序及算法分析
写的不错,转过来了http://www.cnblogs.com/zabery/archive/2011/07/26/2117103.html前言记得在学习数据结构的时候一味的想用代码实现算法,重视的是写出来的代码有一个正确的输入,然后有一个正确的输出,那么就很满足了。从网上看了许多的代码,看了之后貌似懂了,自己写完之后也正确了,但是不久之后就忘了,因为大脑在回忆的时候,只依稀记转载 2012-01-11 10:40:27 · 3344 阅读 · 0 评论 -
转一个常用排序算法的动画效果图
来自:http://yingyingol.iteye.com/blog/13348911 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner lo转载 2012-01-11 10:49:06 · 17976 阅读 · 5 评论 -
翻译《The rsync algorithm》
最近在学习Rsync工具,在对Rsync算法大加赞赏之余,决定将《The rsync algorithm 》翻译,有不正之处 还请指正。转载请注明出处。 rsync算法安德鲁Tridgell 保罗马克拉斯 部计算机科学 澳大利亚国立大学 堪培拉,AC翻译 2011-08-25 21:49:41 · 9474 阅读 · 3 评论 -
开源分词框架分析
本文将带你一起了解搜索引擎神秘面纱中的一个重要部分---中文分词技术:主要讲述中文分词的实现原理和现今比较热门的几种搜索分词java版开源框架。任何一个全文搜索引擎都必须要在对索引处理之前进行一项重要的数据预处理工作:分词。分词的作用在于让机器能够更加容易的"学会"人类语言,搜索引擎才能展示出我们真正想要找的东西。当然,如果仅仅只是针对搜索这个应用场景,对外文(英文,俄文)的分词工作似乎轻而易举,原创 2011-06-28 19:08:00 · 6882 阅读 · 0 评论 -
Servlet总结笔记1
<br />一.Servlet生命周期:1.加载,通常在web服务器启动时加载该类;2,实例化:与一般普通对象无异;3.初始化,调用init()方法;4.调用service方法,处理post or get 请求;5.结束:destory();<br />二.Servlet不同于一般对象:每个Servlet拥有一个ServletConfig对象,保存部署时信息(比如web.xml里面的init-parameter);用于访问ServletContext;每个web应用只拥有一个ServletContext对象原创 2011-03-27 23:26:00 · 738 阅读 · 0 评论 -
继续二叉树--图文表示
上一篇介绍红黑二叉树,添加操作相对比较简单,好理解,但是红黑树元素的删除还是比较麻烦的,所以转载一篇图文并茂的文章,方便理解:转自:http://blog.youkuaiyun.com/Very_2/article/details/5722682 介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmet转载 2012-02-04 10:51:44 · 2836 阅读 · 0 评论