数据结构
文章平均质量分 96
程序员Seven
欢迎到访在线网站:www.seven97.top
Java八股文面试材料获取,欢迎关注公众号 SevenCoding
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
十大经典排序算法
内部排序:数据记录在内存中进行排序。外部排序:因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。插入排序希尔排序选择排序冒泡排序归并排序快速排序堆排序基数排序等,本文只讲解内部排序算法。原创 2025-12-08 09:00:00 · 2137 阅读 · 0 评论 -
数据结构——树
树就是一种类似现实生活中的树的数据结构(倒置的树)。任何一颗非空树只有一个根节点。树的定义:树是⼀种数据结构,它是由n(n≥1)个有限节点组成⼀个具有层次关系的集合。把它叫做“树”是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。每个节点有零个或多个⼦节点没有⽗节点的节点称为根节点每⼀个⾮根节点有且只有⼀个⽗节点除了根节点外,每个⼦节点可以分为多个不相交的⼦树一棵树中的任意两个结点有且仅有唯一的一条路径连通。一棵树如果有 n 个结点,那么它一定恰好有 n-1 条边。原创 2025-12-05 09:00:00 · 1368 阅读 · 0 评论 -
数据结构-哈希表
像线性数据结构在查找的时候,⼀般都是使⽤= 或者!= ,在折半查找或者其他范围查询的时候,可能会使⽤< 和> ,理想的时候,我们肯定希望不经过任何的⽐较,直接能定位到某个位置(存储位置),这种在数组中,可以通过索引取得元素。那么,如果我们将需要存储的数据和数组的索引对应起来,并且是⼀对⼀的关系,那不就可以很快定位到元素的位置了么?只要通过函数f(k) 就能找到k 对应的位置,这个函数f(k) 就是hash 函数。原创 2025-12-01 09:00:00 · 731 阅读 · 0 评论 -
线性数据结构
数组(Array)是一种很常见的数据结构。它由相同类型的元素(element)组成,并且是使用一块连续的内存来存储。数组是⼀种线性的结构,⼀般在底层是连续的空间,存储相同类型的数据,由于连续紧凑结构以及天然索引⽀持,查询数据效率⾼。假设我们知道数组a 的第 1 个值是 地址是 296,⾥⾯的数据类型占 2 个 单位,那么我们如果期望得到第 5 个: 296+(5-1)*2 = 304 , O(1) 的时间复杂度就可以获取到。原创 2025-11-28 09:00:00 · 679 阅读 · 0 评论 -
缓存穿透的解决方式?—布隆过滤器
布隆过滤器是由布隆(Burton Howard Bloom)在1970年提出的 一种紧凑型的、比较巧妙的概率型数据结构,特点是高效地插入和查询,查询时可以用来判断 “一定不存在或者可能存在”,它是用多个哈希函数,将一个数据映射到位图结构中。布隆过滤器的空间效率O(m) 和查询时间O(k) 都很优秀,但是存在一定的误判率 (布隆过滤器认为不存在,则一定不存在;布隆过滤器认为存在,则只是可能存在)bit数组的位数m越大,hash函数的个数k越多,误判率就越低。原创 2025-04-30 08:15:00 · 1312 阅读 · 0 评论 -
如何统计不同电话号码的个数?—位图法
有人说遍历,使用HashSet或者int数组来存储,这里先不谈算法效率的问题,这100亿数据如何在能否在内存中放下也是一个问题。如果用int类型来存储这100亿个电话号码,那么就需要 100亿 * 4字节 = 37GB ≈ 40GB。所以这些方法行不通的根本原因实际上是内存不够。原创 2025-04-24 08:15:00 · 1777 阅读 · 0 评论
分享