
数据结构
文章平均质量分 94
择维士
专注技术分享
展开
-
BitSet的python实现
bitset算是设计很精巧实现巧妙地那一类集合。本文讲述了如何在python中实现java版本的bitset原创 2022-09-23 16:27:47 · 1606 阅读 · 3 评论 -
Java拾遗03- 各个时期的HashMap和ConcurrentHashMap
引子最近在看小灰灰算法.里面有一节讲到散列表相关的比较有意思. 本文记录散列表相关, 以及JDK中的hashmap concurrenthashmap 是如何优化的.书中所说解决散列表冲突时候的2种办法:开放寻址法如下图, 我们想放入Entry6 (hash后需要放的位置是3)但是位置3上面已经有Entry5, 那么我们会**向数组后面接着找下一个有空的位置**. 这就是开放寻址...原创 2019-12-27 22:16:12 · 200 阅读 · 0 评论 -
Java拾遗01HashMap
这是一个拾遗系列, 觉得Java中有些比较有意思的点可以拿来记录一下 分享一下.Abstract半年前?, 对于从业Java快5年了,觉得自己已经比较了解HashMap了, 直到有一天去XX公司面试, 被问到(1)HashMap为什么会导致100%? 我回答到因为在扩容过程中可能导致死循环而导致CPU高. 然后又被问到(2)怎么导致的死循环? 额 这个具体就不知道了(3) 然后惊呆的...原创 2019-11-13 23:37:22 · 159 阅读 · 0 评论 -
使用信号量实现的有界缓冲池BoundedBuffer
/** * author:gaoxingliang@outlook.com * created:2015年9月2日 下午8:19:08 */package datastruct;import java.util.concurrent.Semaphore;/** * 使用信号量实现的有界缓冲池 */public class BoundedBuffer<T>{ private原创 2015-09-02 21:44:45 · 2452 阅读 · 0 评论 -
排序
归并排序:原创 2014-10-29 22:21:20 · 537 阅读 · 0 评论 -
Java SkipList 实现
package datastruct;import java.util.Random;public class SkipList { public SkipListEntry head,tail; public int n;//size public int h;//high public Random r; public SkipList() { SkipListE原创 2014-12-29 19:44:04 · 1768 阅读 · 0 评论 -
红黑树 学习笔记
性质:节点非黑即红根和叶子节点是黑(这里说的叶子节点指填充后的树的叶子节点,NIL节点)红节点的父节点是黑节点任意一个节点到以他为根的叶子节点所经过的黑节点数目(不包括自身,但包括叶子节点)的个数是一样。红黑树可以在O(lgn)时间内完成查询搜索操作,另插入操作需要最多2次旋转,删除操作需要最多3次旋转。原创 2014-11-29 20:06:17 · 572 阅读 · 0 评论 -
二叉查找数 插入 删除
package search;public class BinarySearchTree { /** * @param args */ public static void main(String[] args) { int a[] = new int[] { 8,7,3,10,2,5,4,6 }; Node root = buildBinaryTree(a); t原创 2014-11-20 23:00:50 · 562 阅读 · 0 评论 -
自旋锁、排队自旋锁、MCS锁、CLH锁
自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自旋锁适用于锁保护的临界区很小的情况,临界区很小的话,锁占用的时间就很短。简单的实现import java.util.concurrent.atomic.AtomicReference;public class Spi转载 2014-07-07 20:24:03 · 530 阅读 · 0 评论 -
java LRUMap经典实现
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package net.aviation.utils;import java.util.LinkedHashMap;import java.util.Map;/** *LRU 缓存map原创 2013-04-01 19:45:38 · 2242 阅读 · 0 评论