青云博客 记录、分享

树 - 哈夫曼树

哈夫曼树是一种用于数据压缩的树形结构,通过构建最优二叉树来实现高效的编码和解码。 在构建哈夫曼树的过程中,首先需要统计待编码数据中每个字符的出现频率。然后,将每个字符及其频率创建为一个叶子节点,并将它们组成一个节点集合。 接着,从节点集

詹学伟 Published on 2024-04-24

线性表 - 链表的理解

链表是一种常见的线性表数据结构,与数组不同,链表中的元素在内存中不是连续存储的。 链表由节点(Node)组成,每个节点包含数据元素和一个指向下一个节点的指针。 链表具有动态大小和灵活插入、删除的特点,因为节点间通过指针连接,无需移动其他元素。 常见的链表类型有单向链表、双向链表

詹学伟 Published on 2024-04-24

线性表(散列) - 哈希表

哈希表是一种基于散列思想的线性表数据结构,它通过哈希函数将关键字映射到表中的位置,实现高效的插入、删除和查找操作。 哈希表的特点如下: 哈希函数:哈希表通过哈希函数将关键字映射为哈希值,并根据哈希值确定元素在表中的位置。好的哈希函数能够最大程度地减少冲突,即不同的关键字映射到相同的哈希值。 数组存储

詹学伟 Published on 2024-04-24

线性表 - 栈和队列

栈和队列是常见的线性表数据结构。 栈采用后进先出的原则。最后插入的元素将第一个被删除或访问。 栈主要有入栈和出栈两个操作。入栈将元素添加到栈的顶部,而出栈从栈的顶部移除元素,并返回该元素的值。 栈在函数调用和递归、括号匹配、浏览器前进和后退等场景中得到广泛应用。比如函数调用和递归中,每个函数的参数、

詹学伟 Published on 2024-04-24

线性表 - 数组和矩阵

当谈到线性表时,数组和矩阵是两种常见的数据结构。 数组(Array): 数组是有序的元素集合,可以通过索引来访问和操作其中的元素。它是最简单、最基本的数据结构之一。数组的特点包括: 连续存储:数组中的元素在内存中是连续存储的,这样可以通过计算偏移量来快速定位元素。 相同类型:数组中的所有元素必须具有

詹学伟 Published on 2024-04-24

什么是分布式系统

一个系统 各组件分别部署在不同服务器。彼此通过网络通信和协调的系统。 可以指多个不同组件分布在网络上互相协作,比如说电商网站

詹学伟 Published on 2024-04-24

CAP原则

在设计一个分布式项目的时候会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance)都需要的情景. CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。 如下图,C

詹学伟 Published on 2024-04-24

为什么CAP不可兼得

(1) 场景 如下图,是我们证明CAP的基本场景,分布式网络中有两个节点Host1和Host2,他们之间网络可以连通,Host1中运行Process1程序和对应的数据库Data,Host2中运行Process2程序和对应数据库Data。 (2) CAP特性

詹学伟 Published on 2024-04-24

什么是BASE理论?

BASE(Basically Available、Soft state、Eventual consistency)是基于CAP理论逐步演化而来的,核心思想是即便不能达到强一致性(Strong consistency),也可以根据应用特点采用适当的方式来达到最终一致性(Eventual consist

詹学伟 Published on 2024-04-24

分布式锁有哪些的实现方案?

资:12-25K 岗位:中高级开发工程师 一、

詹学伟 Published on 2024-04-24
Previous Next