
【**数据结构与算法设计】
文章平均质量分 81
iteye_5013
这个作者很懒,什么都没留下…
展开
-
【Core Java】java.util的集合框架
Java的集合框架大致可以分为四个体系:List/Set/Queue/Map。其中List/Set/Queue来自Collection根接口,Map来自Map根接口。 注意:Iterator迭代Collection集合,迭代过程中,避免对collection更改,除非通过Iterator删除(remove),否则会抛出并发修改异常。 Set存放不重复的元素,...原创 2012-02-02 10:14:43 · 107 阅读 · 0 评论 -
WXXR LRUList的实现
LRUList原创 2012-03-01 16:01:14 · 133 阅读 · 0 评论 -
【编程珠矶】开篇 千万号码的排序问题
注:学习了《编程珠矶》第一章,将涉及的一些知识点整理如下 value-->index 将某个数转化为位图的索引,如要表示value=2,即将位图index=2上的value赋为1(00100000.。。) 位图数据结构~位反<< 位左移>> 位右移& 位与 : 同为1(真)为1| 位或 :只要有一个为1(真)则为1^ 位...原创 2012-04-21 12:52:59 · 133 阅读 · 0 评论 -
排序算法
插入排序 shell排序 http://c.chinaitlab.com/special/cpxsf/index.html原创 2012-04-21 23:06:05 · 93 阅读 · 0 评论 -
字符串匹配算法——Edit distance
如何比较两个字符串之间的相似程度(或者差异)?想要比较两个字符串之间的相似程度,可以看其中一个字符串通过几步操作可以转换为另一个字符串,通过度量转换操作的步数可以来衡量两个串的相似程度,如果转换步数越少,则两者越匹配。这里转换操作的度量就称为:edit distance。该值越小,则两个字符串越匹配。 但是对edit distance有不同的definition ht...原创 2012-05-09 11:20:35 · 360 阅读 · 0 评论 -
map3搜索与存储的一道面试题
假设一个mp3搜索引擎收录了2^24首歌曲,并记录了可收听这些歌曲的2^30条URL,但每首歌的URL不超过2^10个。系统会定期检查这些URL,如果一个URL不可用则不出现在搜索结果中。现在歌曲名和URL分别通过整型的SONG_ID和URL_ID唯一确定。对该系统有如下需求:1) 通过SONG_ID搜索一首歌的URL_ID,给出URL_ID计数和列表2) 给定一个SONG_ID,为其添加一个新的...原创 2012-05-10 15:10:28 · 145 阅读 · 0 评论 -
CRC循环校验
http://www.360doc.com/content/10/0408/22/1102209_22179091.shtml 循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1...原创 2012-05-10 15:11:41 · 168 阅读 · 0 评论 -
数据结构之位图
介绍(20120511)位图就是通过将数组下标与应用中的一些值关联,数组中该下标所指定的位置上的元素可以用来标识应用中值的情况(是否存在 or 数目 or 。。。)。 位图中的值可以是计数、标识(如例1)。可以运用在快速查找、排重、删除?、排序、压缩数据等。实现不同语言版本相关应用压缩 排序 例:有1000,0000个数,如果想对这些数排序...原创 2012-05-10 18:34:07 · 206 阅读 · 0 评论 -
常见数据结构与算法汇总
1、常见数据结构 线性:数组,链表,队列,堆栈,块状数组(数组+链表) ,hash表,双端队列 ,位图(bitmap)树:堆(大顶堆、小顶堆) ,trie树(字母树or字典树) ,后缀树,后缀树组 ,二叉排序/查找树,B+/B-,AVL树 ,Treap ,红黑树 ,splay树 ,线段树 ,树状数组图:图其它:并查集 2、常见算法(1) ...原创 2012-05-10 23:01:01 · 200 阅读 · 0 评论 -
【专题】分治递归+排序算法
123原创 2012-03-01 11:47:56 · 139 阅读 · 0 评论 -
【排序】merge排序
前言主要学习 http://en.wikipedia.org/wiki/Merge_sortmerge排序思想 实现递归实现+非递归实现java版 c版 性能分析原创 2012-02-28 09:59:50 · 146 阅读 · 0 评论 -
【Core Java】并发集合
并发容器与同步容器 并发容器:ConcurrentHashMap、ConcurrentSkipListMap。同步容器:java.util.Collections中提供如下 “包装方法”。 public static <T> Collection<T> synchronizedCollection(Collection<T> c)publ...原创 2012-02-02 17:05:24 · 106 阅读 · 0 评论 -
LRU理论
1.LRU算法介绍 LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式——在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充...原创 2012-02-21 18:46:41 · 115 阅读 · 0 评论 -
【专题】LRU
包含如下内容:一. LRU算法http://nemogu.iteye.com/blog/1415874http://nemogu.iteye.com/blog/1552318 二. 算法实现实现1 基于LinkedHashMap,线程安全的java实现 http://nemogu.iteye.com/blog/14183...原创 2012-02-22 16:21:55 · 116 阅读 · 0 评论 -
WXXR LRUMap的实现
前言实现LRU算法,注意观察者模式、并发(读写锁、线程池)的运用核心类:LRUMap成员变量LinkedHashMap<K,V> map —— 底层存放元素(key-value)的容器。ConcurrentLinkedQueue<LRUMapEvictionListener<K,V>> listeners —— 监听器队列...原创 2012-02-22 18:33:00 · 245 阅读 · 0 评论 -
Apache LRUMap实现
源码是org.apache.commons.collections.LRUMapjavadoc是http://commons.apache.org/collections/api-release/index.html原创 2012-02-23 13:10:47 · 166 阅读 · 0 评论 -
递归与分治
分治与递归基本思想分治:分治强调“分而治”,即将一个规模大的难以解决的问题分成若干个规模小的易于解决的并且类型相同的子问题,通过解决这些子问题来最终解决大的问题。 递归:对于分治会产生几个问题,首先是如何将大问题分成各个子问题,其次何时才算“分”完了。这两个问题就是“递归”所关心的。如果分解的子问题还不能满足要求,“递归”会继续分下去,直到达到某个条件为止。...原创 2012-02-24 18:16:05 · 145 阅读 · 0 评论 -
算法类博客推荐
1. http://blog.csdn.net/v_JULY_v原创 2012-02-24 18:17:41 · 121 阅读 · 0 评论 -
【排序】快速排序
前言快速排序(Quick Sort)算法是 “递归+分治”算法一个很好的应用。算法思想 快速排序是找出一个元素(理论上可以随便找一个 注1)作为基准值(pivot),然后对数组进行分区操作:找到基准点——使基准点左边元素的值都不大于基准值,基准点右边的元素值都不小于基准值,找到基准点后就可以将基准值放到基准点上,这样在该基准点左边的值都小于右边的值,基准点两边为两个分区。递...原创 2012-02-27 18:40:55 · 191 阅读 · 0 评论 -
LRU算法介绍
问题背景在操作系统的内存管理里,如何节省有限的内存并为尽可能多的进程提供资源是一个很重要的问题。 内存的虚拟存储管理,是现在最通用,最成功的方式——在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面,内存中只存放当前所需页面,其余页面放入...原创 2012-06-05 22:30:02 · 286 阅读 · 0 评论