数据结构-算法
文章平均质量分 63
实际开发中用到的数据结构、算法
hamish-wu
普通程序员
展开
-
分布式系统id生成方案分析
一、分布式系统的id 生成分布式id 需要保证全局唯一,在此基础上 尽可能的保证有序,语义性。有序性是为了匹配mysql 总innodb引擎的 数据存储结构语义性是便于查找问题,例如从id 中可以辨识出业务类型,时间等信息。二、UUID 分析UUID 是一种过去比较流流行的分布式id 生成方案,使用方式简单,Mybatis-plus 内置了UUID 主键生成器。UUID 可以保证唯一性,但是没有顺序,更没有语义含义。在分布式系统中 UUID 虽然可以使用,但是影响了mysql 数据写入性能。原创 2022-03-06 21:52:01 · 536 阅读 · 0 评论 -
阿里云OSS 文件List 转换为树形结果
java List 转换成Tree原创 2021-12-11 20:01:44 · 738 阅读 · 0 评论 -
4.算法-所有数组的子集
基础模板 所有数组的子集一、 数组子集二、位运算迭代算法三、递归算法一、 数组子集你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。二、位运算迭代算法三、递归算法...原创 2021-04-01 11:18:24 · 1164 阅读 · 1 评论 -
数据结构(3)-从零开始实现一个java链表
数据集合是编程中常用的逻辑,链表是在数据结构中经常被用到和考察,JDK util 包中提供了Queue 接口,LinkedList、LinkedHashSet、LinkedHashMap<K,V>实现。显而易见,linkedHashSet 是以LinkedHashMap<K,V> 为基础来实现的。 /** * Constructs a new, empty linked hash set. (This package private * construc原创 2021-03-19 14:59:16 · 200 阅读 · 0 评论 -
1.跳跃表SkipList
redis 中zset 数据结构使用了跳跃表实现zset 要支持随机删除和插入。插入特定顺序,继续保证链表有序,二分查找的对象必须是数组跳跃表一:理解思路 链表加上多层的索引:跳跃表二:假如我们要用某种数据结构来维护一组有序的int型数据的集合,并且希望这个数据结构在插入、删除、查找等操作上能够尽可能着快速,那么,你会用什么样的数据结构呢?数组一种很简单的方法应该就是采用数组了,...原创 2020-03-11 15:03:41 · 260 阅读 · 0 评论 -
2.算法-手写滑动窗口限流
限流滑动窗口手写滑动窗口限流手写滑动窗口限流public class slidingWindows { /** * 时间窗口 **/ private Long window; /** * 窗口的size 用于计算总的流量上限 **/ private Integer size = 2000; /**...原创 2020-04-03 22:02:08 · 2662 阅读 · 2 评论