
【Data Structures & Algorithms】
文章平均质量分 93
数据结构与算法
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
小小工匠
show me the code ,change the world
展开
-
深入理解二叉树、B树与B+树:原理、应用与实现
二叉树、B树和B+树各有其优势和适用场景。理解它们的差异和设计思想,有助于我们在实际开发中做出合理的选择。特别是对于数据库设计和性能优化,深入理解B+树的工作原理至关重要。原创 2025-03-27 20:30:00 · 1093 阅读 · 0 评论 -
Algorithms_LSM树(Log-Structured Merge Tree)
为了优化读取性能,LSM树通常使用多层级的SSTable文件,其中越靠近顶部的SSTable越新,越靠近底部的SSTable越旧。从分布式数据库系统到云存储服务,LSM树提供了一种高效的方式来处理大量的数据,并支持高性能的写入和读取操作。综上所述,LSM树和B+树在写入性能、读取性能、存储空间使用和合并操作等方面有明显的区别,因此在不同的使用场景中选择合适的数据结构非常重要。LSM树:LSM树需要定期执行合并操作,以将多个SSTable文件合并为更大的文件,以减小数据碎片,提高读取性能,以及管理存储空间。原创 2023-11-08 06:30:00 · 7365 阅读 · 0 评论 -
Algorithms_二叉树的层次遍历(广度优先)
文章目录使用树理解深度优先和广度优先使用树理解深度优先和广度优先我们上篇博文中 Algorithms_二叉树的前序遍历、中序遍历、后续遍历(深度优先) ,本质上是深度优先。 为什么这么说呢? 我们来看下 5 / \ 3 6 / \ \ 2 4 ...原创 2020-02-09 10:29:15 · 14099 阅读 · 0 评论 -
Algorithms_二叉树的前序遍历、中序遍历、后续遍历(深度优先)
文章目录前序、中序、后序的含义前序、中序、后序的含义前序遍历: 先输出父节点,再遍历左子树,最后遍历右子树中序遍历 : 先遍历左子树,再输出父节点,最后遍历右子树后序遍历 : 先遍历左子树,再遍历右子树,最后输出父节点如何区分呢? 看输出父节点的顺序 ,就可以确定是 前序、中序、后序...原创 2020-02-08 22:54:12 · 13916 阅读 · 0 评论 -
Algorithms_二叉树&二分搜索树初探
文章目录二叉树二分搜索树 Binary Search Tree二叉树二分搜索树 Binary Search Tree原创 2020-02-07 22:35:11 · 14042 阅读 · 1 评论 -
Algorithms_算法思想_递归&分治
文章目录引导案例递归的定义什么样的问题可以用递归算法来解决引导案例案例一:分销系统的返利: 比如B是A的下线,C是B的下线,那么在分钱返利的时候A可以分B,C的钱,这时候我们是不是就要分别找B,C的最后上级。这个问题我们一般怎么来解决呢?C–>B–>A案例二: .斐波那契数列:1 1 2 3 5 8 13 21 ......有什么特点?从第三个数开始 就等于前面...原创 2020-01-12 20:28:49 · 14265 阅读 · 0 评论 -
Algorithms_基础数据结构(00)_数据结构概述
文章目录数据结构的本质常用数据结构线性表(一对一)顺序表链表栈队列树存储结构 (一对多)图存储结构(多对多)数据结构的本质数据结构本质其实就是数据的存储方式。学习数据结构,选择合理数据结构存储数据,为高效利用数据提供了基础。举个例子:比如 1,2,3,“a”,“b”,“c” 这种数据数据,我们利用变量或者数组存储即可 。还有一种数据,比如家族的族谱这种树形结构的数据 ,当然了 你也...原创 2020-01-06 22:21:01 · 13927 阅读 · 0 评论 -
Algorithms_基础数据结构(04)_线性表之链表_单向循环链表&约瑟夫环问题
文章目录大纲图链表的经典面试题目如何设计一个LRU缓存淘汰算法约瑟夫问题大纲图链表的经典面试题目如何设计一个LRU缓存淘汰算法tip:单向链表约瑟夫问题N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。举个例子: 假设N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。现在问你最后留下的人是谁?比如N=6,M=5 ,留下的就是11 ...原创 2020-01-06 20:16:08 · 14078 阅读 · 1 评论 -
Algorithms_基础数据结构(03)_线性表之链表_双向链表
文章目录大纲图双向链表双向链表的基本结构大纲图双向链表Algorithms_基础数据结构(02)_链表&链表的应用案例之单向链表中我梳理了 单向链表的基本操作,接下来我们继续来看下双向链表吧。双向链表的基本结构...原创 2020-01-03 00:09:11 · 13965 阅读 · 0 评论 -
Algorithms_基础数据结构(02)_线性表之链表_单向链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的原创 2019-12-31 00:06:44 · 14281 阅读 · 0 评论 -
Algorithms_基础数据结构(01)_线性表之数组&数组的应用案例分析
文章目录引导案例数据结构三要素数据逻辑结构(线性结构&非线性结构)数据存储结构(顺序存储、链式存储、索引存储和散列存储)顺序存储链式存储索引存储散列存储数据的运算什么是数组数组的访问数组的插入与删除引导案例参考答案什么是链表单向链表&双向链表&循环链表链表 的访问链表的插入与删除引导案例给你一个文件里面包含全国人民(14亿)的年龄数据(0~180),现在要你统计每一个...原创 2019-12-23 23:31:57 · 14011 阅读 · 0 评论 -
Algorithms_入门基础_位运算符的巧技一二事
文章目录单目运算符、双目运算符、三目运算符运算优先级i++ 和 ++i位运算符按位与运算【&】按位或运算【|】按位异或运算【^】按位取反运算【~】左移运算右移运算单目运算符、双目运算符、三目运算符单目 双目 三目 -----> 参与运算的数字个数运算优先级百度百科: JAVA运算符优先级看个例子public static void main(String[] a...原创 2019-12-19 09:19:02 · 14064 阅读 · 0 评论 -
Algorithms_算法专项_Bitmap原理及应用
文章目录引导案例bitmap引导案例Q: 如何在3亿个整数, 每个整数的范围是 0到2亿,判断一个数是否存在。 要求内存使用在500M以内,一台主机。思考下…数组? hash ? 分治? bitmap ? 布隆过滤器 ?用数组的话 , 开辟个data[2亿]长度的数组, data[1]=1 表示存在,data[2]=0表示不存在。 理论上可行,但是内存肯定超过了500M, 不...原创 2019-12-19 01:06:56 · 14056 阅读 · 0 评论 -
Algorithms_算法专项_Hash算法的原理&哈希冲突的解决办法
文章目录哈希简介哈希简介原创 2019-12-16 00:47:14 · 13888 阅读 · 0 评论 -
Algorithms_入门基础_时间复杂度&空间复杂度
- 有穷性: 能够执行完成,不能是死循环 - 确定性: 能够得到一个结果 - 可行性: 可以解决问题 - 有输入、有输出原创 2019-11-24 15:23:31 · 14076 阅读 · 0 评论 -
Algorithms_入门基础_如何使用最高效的方式来判断一个数是否是2的N次方
文章目录QuestionAnswer 1.0Question引入… 先看个阿里巴巴的面试题吧如何使用最高效的方式来判断一个数是否是2的N次方? 先思考下哈……………………………………Answer 1.0分析下:2的N次方嘛 ,举个例子 2 4 8 16是 2的N次方, 6 , 10 不是2的N次方。2的N次方 ====> 就可以看成 这...原创 2019-11-19 22:18:50 · 14116 阅读 · 0 评论