随笔分类 -  数据结构与算法

1 2 下一页
你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘
摘要:Redis有哪些数据结构? 字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。 很多人面试时都遇到过这种场景吧? 其实除了上面的几种常见数据结构,还需要加上数据结构HyperLogLog、Geo。 可是很多人不知道redis 不仅有上面的几种数据结构,还内藏了内 阅读全文
posted @ 2019-02-13 18:01 一天不进步,就是退步 阅读(2230) 评论(2) 推荐(1) 编辑
给定一个整数 n,返回 n! 结果尾数中零的数量。
摘要:示例 1: 示例 2: 代码部分 阅读全文
posted @ 2018-05-08 12:53 一天不进步,就是退步 阅读(835) 评论(0) 推荐(0) 编辑
分组密码的工作模式--wiki
摘要:密码学中,块密码的工作模式允许使用同一个块密码密钥对多于一块的数据进行加密,并保证其安全性。[1][2] 块密码自身只能加密长度等于密码块长度的单块数据,若要加密变长数据,则数据必须先被划分为一些单独的密码块。通常而言,最后一块数据也需要使用合适填充方式将数据扩展到符合密码块大小的长度。一种工作模式 阅读全文
posted @ 2018-01-30 19:40 一天不进步,就是退步 阅读(1096) 评论(0) 推荐(0) 编辑
bitmap对海量无重复的整数排序--转
摘要:原文地址:http://blog.csdn.net/u013074465/article/details/46956295 现在有n个无重复的正整数(n 小于10的7次方),如果内存限制在1.5M以内,要求对着n个数进行排序。【编程珠玑第一章题目】 很显然,10的7次方个整数占用的空间为10 ^ 7 阅读全文
posted @ 2016-12-14 21:20 一天不进步,就是退步 阅读(1275) 评论(0) 推荐(0) 编辑
Java 下实现锁无关数据结构--转载
摘要:介绍通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性。但可惜的是,这属于阻塞性同步,所有其他线程... 阅读全文
posted @ 2014-10-31 17:59 一天不进步,就是退步 阅读(394) 评论(0) 推荐(0) 编辑
斐波那契数列(fabnacci)java实现
摘要:斐波那契数列定义:From Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/Fibonacci_numberInmathematics, theFibonacci numbersorFibonacci sequenceare ... 阅读全文
posted @ 2014-10-17 14:56 一天不进步,就是退步 阅读(3970) 评论(0) 推荐(0) 编辑
vlist java实现-转
摘要:转自:http://www.blogjava.net/changedi/archive/2012/04/15/374226.htmlvlist是一种列表的实现。结构如下图:(图来源wikipedia)类似链接表的结构,但是,不是线性的。它的结构基于一种2的幂次扩展,第一个链接节点包含了列表的前一半数... 阅读全文
posted @ 2014-05-30 17:08 一天不进步,就是退步 阅读(1044) 评论(0) 推荐(0) 编辑
What is a heap?--reference
摘要:A heap is a partially sorted binary tree. Although a heap is not completely in order, it conforms to a sorting principle: every node has a value less ... 阅读全文
posted @ 2014-05-05 10:24 一天不进步,就是退步 阅读(398) 评论(0) 推荐(0) 编辑
生产者/消费者问题的多种Java实现方式--转
摘要:实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲解,而我们却视而不见不以为然的。在博文《一种面向作业流(工作流)的轻量级可复用的异步流水开发框架的设计与实现》中将介绍一种生产者/消费者模式的具体应用。生产者消费者问题是研究多线程程序... 阅读全文
posted @ 2014-05-03 21:20 一天不进步,就是退步 阅读(2117) 评论(0) 推荐(0) 编辑
Top 10 Algorithms for Coding Interview--reference
摘要:ByX WangUpdate History:Web Versionlatest update: 4/6/2014PDF Versionlatest update: 1/16/2014The following are top 10 algorithms related topics for coding interviews. As understanding those concepts requires much more effort, this list below only serves as an introduction. They are viewed from a Java 阅读全文
posted @ 2014-04-11 10:52 一天不进步,就是退步 阅读(513) 评论(0) 推荐(0) 编辑
通过分析 JDK 源代码研究 TreeMap 红黑树算法实现--转
摘要:TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但 TreeSet 底层是通过 TreeMap 来实现的,因此二者的实现方式完全一样。而 TreeMap 的实现就是红黑树算法。TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。TreeSet 和 TreeMap 的关系为了让大家了解 TreeMap 和 TreeS 阅读全文
posted @ 2014-03-28 18:35 一天不进步,就是退步 阅读(317) 评论(0) 推荐(0) 编辑
探索 ConcurrentHashMap 高并发性的实现机制--转
摘要:ConcurrentHashMap 是 Java concurrent 包的重要成员。本文将结合 Java 内存模型,来分析 ConcurrentHashMap 的 JDK 源代码。通过本文,读者将了解到 ConcurrentHashMap 高并发性的具体实现机制。这对于我们在实际应用中更加高效的使用它是很有帮助的。简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内 阅读全文
posted @ 2014-03-28 18:31 一天不进步,就是退步 阅读(443) 评论(0) 推荐(0) 编辑
Implementing the skip list data structure in java --reference
摘要:reference:http://www.mathcs.emory.edu/~cheung/Courses/323/Syllabus/Map/skip-list-impl.htmlThe link list element structure used to implement a Skip ListThelink list elementused to implement theskip listhas4 links(not including thedata portion):The Entry strcuture in a Skip List (theSkipListEntryclass 阅读全文
posted @ 2014-03-24 15:21 一天不进步,就是退步 阅读(720) 评论(0) 推荐(0) 编辑
Skip list--reference wiki
摘要:Incomputer science, askip listis adata structurethat allows fast search within anordered sequenceof elements. Fast search is made possible by maintaining a linked hierarchy of subsequences, each skipping over fewer elements. Searching starts in the sparsest subsequence until two consecutive elements 阅读全文
posted @ 2014-03-23 21:19 一天不进步,就是退步 阅读(912) 评论(0) 推荐(0) 编辑
深入分析 Linux 内核链表--转
摘要:引用地址:http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个节点之间的联 阅读全文
posted @ 2014-03-07 17:51 一天不进步,就是退步 阅读(325) 评论(0) 推荐(1) 编辑
Java 7之集合类型 - 二叉排序树、平衡树、红黑树---转
摘要:http://blog.csdn.net/mazhimazh/article/details/19961017为了理解 TreeMap 的底层实现,必须先介绍排序二叉树和平衡二叉树,然后继续介绍红黑树。平衡二叉树和红黑树又是一种特殊的二叉排序树。二叉排序树是一种特殊结构的二叉树,可以非常方便地对树中所有节点进行排序和检索。1、排序二叉树排序二叉树特性如下:若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值它的左、右子树也分别为排序二叉树1.1 排序二叉树之插入操作已知一个关键字值为key的结点s,若将其插入到二叉排序树中,只 阅读全文
posted @ 2014-02-27 10:36 一天不进步,就是退步 阅读(2124) 评论(0) 推荐(0) 编辑
MySQL索引背后的数据结构及算法原理--转
摘要:MySQL索引背后的数据结构及算法原理作者 张洋 | 发布于 2011-10-18MySQL索引B树优化原文地址:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文 阅读全文
posted @ 2014-02-16 21:36 一天不进步,就是退步 阅读(300) 评论(0) 推荐(0) 编辑
Radix tree--reference
摘要:source address:http://en.wikipedia.org/wiki/Radix_treeIncomputer science, aradixtree(alsopatriciatrieorradix trieorcompactprefix tree) is a space-optimizedtriedata structurewhere each node with only one child is merged with its child. The result is that every internal node has up to the number of ch 阅读全文
posted @ 2014-02-13 10:03 一天不进步,就是退步 阅读(886) 评论(0) 推荐(0) 编辑
Red–black tree ---reference wiki
摘要:source address:http://en.wikipedia.org/wiki/Red%E2%80%93black_treeAred–black treeis a type ofself-balancing binary search tree, adata structureused incomputer science.The self-balancing is provided by painting each node with one of two colors (these are typically called 'red' and 'black& 阅读全文
posted @ 2014-02-13 08:39 一天不进步,就是退步 阅读(997) 评论(0) 推荐(0) 编辑
java实现迷宫算法--转
摘要:http://blog.sina.com.cn/s/blog_4ad7c2540101gjrc.html回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达一个新点,否则试探下一个方向;若所有的方向均没有通路,则沿原路返回前一点,换下一个方向继续试探,直到所有可能的通路都搜索到,或找到一条通路,或无路可走又返回到入口点。这里可以用一个栈来实现,每走一步,将该位置压入栈中,若该点无路可走,则出栈返回上一位置。需要解决的四个问题:(1)表示迷宫的数据结构 设迷宫为m行n列,利用数组maze[m][n]. 阅读全文
posted @ 2013-12-22 22:15 一天不进步,就是退步 阅读(19492) 评论(1) 推荐(1) 编辑

1 2 下一页