随笔分类 -  DataStructure

从位图结构开始学内存的计算
摘要:目录位图的定义实践-40亿个QQ号在2G内存去重 今天发现从认识位图(Bitmap)结构,可以很好梳理底层的计算机内存结构基础。那就先来认识内存的计算单位: 内存可以比喻成一张巨大的Excel 表格,表格里可以划分不同的Sheet页方便区分不同功能类\区域(类似 堆区,栈区,启动区,命令区,变量区, 阅读全文
posted @ 2026-01-07 16:54 Mysticbinary 阅读(308) 评论(2) 推荐(5)
对递归的两层含义理解
摘要:目录例子1Definition从堆栈的角度理解递归缺点和For循环的区别总结Reference 例子1 /** * 求整数 n 的阶乘 * * @param n 整数 * @return n 的阶乘 */ public int factorial(int n) { if (n == 1) { ret 阅读全文
posted @ 2025-11-03 19:05 Mysticbinary 阅读(186) 评论(0) 推荐(1)
深度优先 和 广度优先搜索算法学习
摘要:目录广度优先的动态图深度优先的动态图广度和深度的具体步骤深度和广度的应用场景 图的两种遍历方式: 深度优先遍历(DFS——Depth First Search) 广度优先遍历(BFS——Breath First Search) 图的遍历算法里,处理临时数据,依赖两个抽象数据结构: 栈 队列 广度优先 阅读全文
posted @ 2024-09-26 16:26 Mysticbinary 阅读(482) 评论(0) 推荐(0)
单向、双向链表结构
摘要:目录单向链表结构双向链表结构 单向链表结构 定义: 单链表是一种链式存取的数据结构,单链表中的数据是以结点的形式存在,每一个结点是由数据元素和下一个结点的存储的位置组成。 单链表的逻辑结构如下(带头节点): 链表在内存中的存储结构如下: 解释: 链表是以节点的方式来存储,是链式存储; 每个节点都包含 阅读全文
posted @ 2024-09-19 13:20 Mysticbinary 阅读(44) 评论(0) 推荐(0)
二叉查找树(BST)
摘要:目录Why need Binary Tree?树也是节点结构规定术语树的创建树的查找查找的效率树的删除适合场景树的遍历 Why need Binary Tree? 有时候,我们希望数据按照特定顺序排列。 比如: 想要按字母顺序排列人名; 按价格顺序排列产品; ... 树也是节点结构 规定 二叉树的每 阅读全文
posted @ 2024-09-19 11:31 Mysticbinary 阅读(73) 评论(0) 推荐(0)
擅长处理临时数据的结构——栈
摘要:目录实践1 —— 从字符串中移除星号 栈和数组存储数据的方式一样,它们都只是元素的列表。不同之处在于栈的以下3个限制: 数据只能从栈末插入; 数据只能从栈末删除; 只能读取栈的最后一个元素。 栈和队列、链表...一样,都是抽象的数据结构, 何为抽象数据结构? 它指一种数据组织的形式,它不关注具体的实 阅读全文
posted @ 2024-09-14 17:33 Mysticbinary 阅读(209) 评论(0) 推荐(0)
递归的实践 —— 如何拆分子问题
摘要:目录需求背景 需求背景 给你一个数组,把这个数组里面每个元素之间都求差(结果忽略负符号),然后把这些差求和。 给你数组 n = [1,3,5] 正常演示步骤: [1,3,5] 1-3 = 2 1-5 = 4 - 3-5 = 2 sum = 8 反过来思考子问题是什么: 假设已经有一个x函数帮忙搞定了 阅读全文
posted @ 2024-08-30 18:34 Mysticbinary 阅读(57) 评论(0) 推荐(0)
汉诺塔和递归
摘要:目录需求背景、限制条件、化简模拟盘子的移动步骤递归实现Code分析练习 1 需求背景、限制条件、化简 汉诺塔就是一个由柱子和盘子组成的玩具,它有一些玩法上的限制,主要是规定了盘子移动有限制。 想理解到递归本质,汉诺塔是个不错的载体。 怎么体会? 在盘子移动的过程中。 # 盘子的数量: # 通常,我们 阅读全文
posted @ 2024-08-30 08:50 Mysticbinary 阅读(152) 评论(0) 推荐(0)
以Top-Down思维去解决问题——递归
摘要:目录递归的基础递归的底层实现(不是重点)递归的应用场景编程中 两种解决问题的思维自下而上(Bottom-Up)自上而下(Top-Down)自上而下的思考过程——求和案例台阶问题 案例易位构词生成 案例 递归和for循环(迭代法)很像,都是通过循环去完成一件事。 但采用Top-Down思维去设计的递归 阅读全文
posted @ 2024-08-29 16:42 Mysticbinary 阅读(667) 评论(1) 推荐(1)
擅长处理临时数据的结构——队列
摘要:目录对列结构队列中间件消息队列能解决什么消息处理的触发机制异步消息队列的概念常见的异步消息队列框架 队列和栈一样,都很适合处理临时数据。 对列结构 和栈一样,队列也是有3条限制(与栈的限制不同)的数组: 数据只能插入队列 末尾(与栈一样); 只能从队列 前端 删除数据(与栈相反); 只能读取队列 前 阅读全文
posted @ 2024-06-12 15:55 Mysticbinary 阅读(82) 评论(1) 推荐(0)
Array 和 Set 数据结构的工作原理
摘要:目录Array work principle分析Array操作步骤数readfindinsertdeleteSet work principle分析Set操作步骤数readfindinsertdeleteJava Collection Class 两种数据结构最大的区别: Array对存入的元素不区 阅读全文
posted @ 2024-04-07 18:26 Mysticbinary 阅读(219) 评论(0) 推荐(0)
图结构 Graph primary
摘要:目录图的应用场景图的概念和分类图的操作存储邻接矩阵演示:邻接表演示:查询 图结构 (英文:Graph Structure) 图的定义: 在数据的逻辑结构中,如果结构中的某一个节点的前驱和后继的个数不加限制,则称这种数据结构为图结构(图形结构、Graph)。 图形结构是一种比树形结构更复杂的非线性结构 阅读全文
posted @ 2024-04-03 18:31 Mysticbinary 阅读(513) 评论(0) 推荐(0)
Trie Tree
摘要:[TOC] 你在搜索引擎搜索的时候,自动给你补全的关键字就是Trie tree 字典树(也叫单词查找树)。 字典树可以实现自动补全或者自动纠错 等 功能。 适合自动补全等文字功能场景。 图: 实践1——找最长字母串 以下这个题,是不是可以使用字典结构处理? 阅读全文
posted @ 2024-02-01 14:19 Mysticbinary 阅读(33) 评论(0) 推荐(0)
DataStructure Preview
摘要:目录Why is it important?线性表数组HashMap链表队列堆栈非线性表树图 如果说在软件应用层的数据库类型有:SQL、MongoDB、Excel ... 那么在编程语言层的数据库就应该是各种数据结构(一个类比),只不过这些数据结构不会把数据存储到硬盘,只存储在内存而已。 计算机的各 阅读全文
posted @ 2024-01-14 16:34 Mysticbinary 阅读(18) 评论(0) 推荐(0)
Map的特性(有序和无序)讨论
摘要:目录什么是红黑树? 在 Java 中,基础java.util.Map 接口本身并不保证元素的顺序。具体的实现类 HashMap 和 TreeMap 的行为(无序、有序)有所不同: HashMap 类使用哈希表实现,不保证元素的顺序,即遍历 HashMap 的键值对时,不能保证按照任何特定的顺序,其迭 阅读全文
posted @ 2024-01-08 17:15 Mysticbinary 阅读(128) 评论(0) 推荐(0)
Introduce Binary Tree
摘要:目录Whay need Binary TreeCharacterRequirement Scenarios Whay need Binary Tree 已经有数组、链表了,为什么还需要二叉树? 什么数据结构能在保证顺序的同时,又能快速完成查找、插入和删除呢? 有序数组和哈希表都做不到这一点。 这时就 阅读全文
posted @ 2024-01-08 17:13 Mysticbinary 阅读(34) 评论(0) 推荐(0)
图的操作
摘要:目录区分图和树图的术语图的实现有向图面向对象的方式表示图矩阵表示图图的搜索 区分图和树 区分图和树重要参考条件就是 环 。 可以把树看作是图,但是图不能是树,为什么? 什么是环? 在图论中,环(Cycle)是区分图和树的一个重要参考条件。 所谓"环"(Cycle),是指: 在一个无向图中,从某个节点 阅读全文
posted @ 2024-01-08 17:10 Mysticbinary 阅读(46) 评论(0) 推荐(0)
图论之最短距离 Dijkstra(迪杰斯特拉算法)入门
摘要:目录初级求解Dijkstra算法入门code 一个码农在工位上写代码累了,趴着睡着了。 再次睁开眼睛,发现身边好几个妖艳宫女正在给你按摩敲背,住的屋子墙壁和天花板都镶嵌着金箔和银片,大殿的柱子是金丝楠木,雕龙刻凤,地毯是波斯纯手工制作,踩上去柔软而温暖。 突然一个老太监急急忙忙的跑到我跟前说: “大 阅读全文
posted @ 2024-01-08 16:17 Mysticbinary 阅读(1283) 评论(0) 推荐(0)
检验算法程序的好坏标准 及优化程序 —— 大O
摘要:目录什么是算法程序?算法 (Algorithm):程序 (Program):怎么检验算法程序的好坏?大O表示法O(1) - 常数时间O(log n) - 对数时间1. 什么是 ( log N )2. 为什么 ( log N ) 比 ( N ) 高效 ?3. 应用场景4. 计算 ( log N ) 的 阅读全文
posted @ 2024-01-08 14:02 Mysticbinary 阅读(200) 评论(0) 推荐(0)
结构设计,二级联动,每行不同下拉框
摘要:如果说一个二级联动框的结构设计,可以采用Map结构。 那么我下面有个问题记录一下: 假设有一个表格,每行初始的下拉选项是一样的,但是随着一级下拉框的改变,二级下拉框就会有所变化。 比如1,我选择地球,物种只有地球的物种。 如果2,我选择了火星,物种就只有火星的物种。 如图所示: 像这样的每行都不一样 阅读全文
posted @ 2023-11-23 10:33 Mysticbinary 阅读(82) 评论(0) 推荐(0)