
数据结构
文章平均质量分 93
流华追梦
15年+ IT从业经验,互联网高级算法工程师、Java语言专家、.Net专家、博客专家、阿里云专家、优快云2023博客之星,优快云付费资源项目实践专家,谢谢关注!
展开
-
十大经典排序算法知识体系终结篇
排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。,具体可参见。原创 2023-12-14 09:11:05 · 919 阅读 · 0 评论 -
一致性哈希详解
普通的 hash 算法(hashcode % size),如果 size 发生变化,几乎所有的历史数据都需要重新hash、移动,代价非常大,常见的 Java 中的 HashMap 就是如此。那如果在 hash 表扩容或者收缩的时候 size 能够保持不变,即历史数据在 hash 表中的位置不变,这样就解决了 hash 表扩缩时的大量数据移动问题。一致性哈希可以理解为,就是 hash 函数(hashcode % size)的 size 保持不变,从而保证了hash 函数的前后一致性。原创 2023-12-06 21:13:04 · 1818 阅读 · 0 评论 -
数据结构 - 全貌总结
数据结构是计算机存储、组织数据的方式。一种好的数据结构可以带来更高的运行或者存储效率。数据在内存中是呈线性排列的,但是我们可以使用指针等道具,构造出类似“树形”等复杂结构。数据结构主要分为逻辑结构物理结构(存储结构)和运算三类。逻辑结构主要包含线性结构(如数组、队列、栈等)和非线性结构(如树、二叉树、堆等);物理结构包括顺序存储、链式存储、索引存储和散列存储;运算包括插入、删除、查找、排序等。原创 2023-11-06 15:33:09 · 247 阅读 · 2 评论 -
时间复杂度O(n)
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。原创 2023-10-13 11:05:01 · 449 阅读 · 0 评论 -
详解B-Tree和B+Tree
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。原创 2023-06-14 15:36:17 · 129 阅读 · 1 评论 -
数据结构-红黑树
大家应该都学过平衡二叉树(AVLTree),了解到AVL树的性质,其实平衡二叉树最大的作用就是查找,AVL树的查找、插入和删除在平均和最坏情况下都是O(logN)。AVL树的效率就是高在这个地方。如果在AVL树中插入或删除结点后,使得高度之差大于1。此时,AVL树的平衡状态就被破坏,它就不再是一棵二叉树;为了让它重新维持在一个平衡状态,就需要对其进行旋转处理,那么创建一颗平衡二叉树的成本其实不小。原创 2023-06-14 10:40:36 · 149 阅读 · 1 评论 -
二叉树、完全二叉树、完满二叉树、满二叉树
简单定义:每个节点最多只有2个子节点的树叫做二叉树。专业定义:二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。下图为一棵普通二叉树。原创 2023-06-08 15:33:12 · 2214 阅读 · 4 评论 -
数据结构-树
树是一种非线性存储结构,通常用来存储逻辑关系为 "一对多" 的数据。使用树结构存储的各个结点,它们之间的关系类似于家谱中的成员关系,比如有父子关系、兄弟关系、表兄弟关系等。原创 2023-06-01 17:07:51 · 144 阅读 · 1 评论