
数据结构和算法
文章平均质量分 91
tomato__
这个作者很懒,什么都没留下…
展开
-
Persistent Ideal Hash Tries---一种Java实现
最近看关于clojure的资料,从rich Hickey(clojure的创造者)的《Persistent Data Structure and Managed Reference》中看到了关于ideal hash trees的介绍,于是找到了Phil Bagwell关于"ideal hash trees"的论文,研究了一下,并结合rich Hickey关于Persistent Ideal H原创 2014-04-14 15:47:04 · 2160 阅读 · 1 评论 -
并发编程实践二:AbstractQueuedSynchronizer
AbstractQueuedSynchronizer,简称AQS,是java.util.concurrent包的synchronizer的基础框架,其它的synchronizer(包括Lock、Semaphore、CountDownLatch、FutureTask等)都是以它作为基础构建的,这篇文章我将对AQS的框架结构作出介绍,包括它对同步状态的管理,功能流程,等待队列的管理等,并涉及到一些实现原创 2014-04-30 10:48:17 · 3840 阅读 · 4 评论 -
并发编程实践一:Non-Blocking队列算法
队列是一种常用的数据结构,这片文章主要是介绍JDK中的非阻塞队列(ConcurrentLinkedQueue)的算法思想,你可以直接阅读JDK的源代码,也许你需要一些预备知识,例如unsafe类,你可以在这里(http://mishadoff.github.io/blog/java-magic-part-4-sun-dot-misc-dot-unsafe/)找到它的资料,源码的注释中也给出了算法的原创 2014-04-20 12:20:21 · 5102 阅读 · 8 评论 -
算法(一):Josephus问题
Josephus是一个著名的犹太历史学家,他有过这样的故事(来自互动百科,http://www.baike.com/wiki/Josephus):在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3个人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀原创 2014-05-26 10:08:03 · 5437 阅读 · 2 评论 -
递归
递归在程序设计中属于较难理解的部分,程序员新手往往感觉递归无从入手,这主要在于递归的过程并不直观,有别于我们通常的思考方式。在这篇文章中我将从最基本的概念开始,逐步阐述递归的思想,递归程序的设计方法,理解递归程序的执行过程,以及怎么运用递归解决问题。基本概念对于递归有一个最简单的定义:递归即函数直接或者间接调用自身。但递归并不是简单的对自身的调用,递归算法的核心思想是将问题分解为规模更小的同类的子原创 2015-08-10 10:13:52 · 1619 阅读 · 0 评论