计算机基础
文章平均质量分 96
扶我起来我还要写代码
经世致用
展开
-
【tree】二叉堆(大顶堆或小顶堆)
本文目录一、二叉堆的定义 二、二叉堆的插入 三、二叉堆的删除系列目录《树》 《树的遍历》 《二叉查找树》 《AVL》 《红黑树(上)》 《红黑树(下)》 《B树》 《B+树》 《大顶堆、小顶堆》一、二叉堆的定义二叉堆:首先是一棵二叉树,其次这棵二叉树要满足结构性质和堆序性质结构性质:是一颗完全二叉树 堆序性质:对于树中的任意节点,要求key大于它的两个孩子,两个孩子之间没有排序要求1.结构性质2.堆序性质原创 2021-06-26 21:35:03 · 1713 阅读 · 3 评论 -
【tree】B+树
本文目录一、B+树的定义 二、B+树的查找 三、B+树的插入 四、B+树的删除系列目录《树》 《树的遍历》 《二叉查找树》 《AVL》 《红黑树(上)》 《红黑树(下)》 《B树》 《B+树》 《大顶堆、小顶堆》本文转载自:一文彻底弄懂B树和B+树 (xianzilei.cn)一、B+树的定义B+树是B树的一种变形形式。网上各种资料上B+树的定义各有不同,一种定义方式是关键字个数和孩子节点个数相同。这里我们采取维基百科上所定义的方式,即关键字个数比孩子节点个转载 2021-06-26 14:09:58 · 895 阅读 · 1 评论 -
【tree】B树
本文目录一、B树的定义 二、B树的查找 三、B树的插入 四、B树的删除系列目录《树》 《树的遍历》 《二叉查找树》 《AVL》 《红黑树(上)》 《红黑树(下)》 《B树》 《B+树》 《大顶堆、小顶堆》本文转载自:一文彻底弄懂B树和B+树 (xianzilei.cn)一、B树的定义B数也称为B-树,他是一棵多路平衡查找树。我们描述一棵B树时需要指定它的阶数,阶数表示了一个节点最多有多少的孩子节点,一般使用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树转载 2021-06-26 14:03:49 · 3858 阅读 · 0 评论 -
【tree】红黑树(下)
本文目录一、基本概念 红黑树的定义 NIL叶节点的讨论 引用值为null 引用值为特殊节点NIL 二、删除节点 fixup原则 系列目录《树》 《树的遍历》 《二叉查找树》 《AVL》 《红黑树(上)》 《红黑树(下)》 《B树》 《B+树》 《大顶堆、小顶堆》一、基本概念1、红黑树的定义红黑树:首先是一颗二叉查找树,其次对于树中的任意一个节点,都满足以下5个性质节点颜色不是红色就是黑色; 根节点黑色; 叶节点黑色(N原创 2021-06-26 13:55:41 · 408 阅读 · 0 评论 -
【tree】红黑树(上)
红黑树的源码实现(Java语言描述)原创 2021-06-24 23:46:50 · 456 阅读 · 2 评论 -
【tree】AVL树
AVL树的递归实现和非递归实现(Java语言描述)原创 2021-06-13 23:10:34 · 373 阅读 · 1 评论 -
【tree】二叉查找树
二叉查找树的递归实现和非递归实现原创 2021-06-12 23:50:42 · 437 阅读 · 2 评论 -
【tree】树的遍历
前序遍历、中序遍历、后序遍历和层序遍历的实现原创 2021-06-11 10:53:26 · 2696 阅读 · 1 评论 -
【tree】树
系列目录:二叉排序树、AVL、红黑树、B树、B+树、大顶堆或小顶堆原创 2021-06-08 11:36:41 · 467 阅读 · 0 评论 -
【随笔】地址空间布局随机化randomize_va_space
内核文档:Documentation for /proc/sys/kernel/ — The Linux Kernel documentation https://www.kernel.org/doc/Documentation/sysctl/kernel.txt 3.15.1Address Space Layout Randomization (oracle.com)randomize_va_spaceThis option can be used to select the typ..原创 2020-12-04 23:28:44 · 2173 阅读 · 0 评论 -
【随笔】静态链接和动态链接
第一次调用共享库函数的时候,没有对应的地址,这就需要通过动态链接器到已经加载到内存中的共享库寻址(如果没加载,先加载),寻址之后回填到GOT对应的表项;以后就可以直接寻址,即只需要plt中第一个jmp就行了,本例中以后的调用只需要执行jmp QWORD PTR [rip+0x200512] # 600a68 <_GLOBAL_OFFSET_TABLE_+0x18>(因为第一次调用的时候动态链接器已经寻址并将地址更新到GOT中,GOT对应的条目中不再只是简单的返回其PLT下一条指令的地址),后续的push、跳原创 2020-12-03 18:03:44 · 470 阅读 · 0 评论 -
Gallery of Processor Cache Effects
原文地址:Gallery of Processor Cache Effects (igoro.com)Most of my readers will understand that cache is a fast but small type of memory that stores recently accessed memory locations. This description is reasonably accurate, but the “boring” details of h..转载 2020-12-01 23:21:29 · 239 阅读 · 0 评论 -
【随笔】加法器和乘法器
一、加法器1. 半加器2. 全加器全加器:由两个半加器和一个或门组成3. 例举8位加法器八位加法器可以由7个全加器和1个半加器串联组成。个位用一个半加器,他的“C0进位”输出引脚连接后一位全加器的“进位信号”,其余的后一位全加器的“进位信号V”输出引脚串联前一位全加器的“进位信号”输入引脚。二、乘法器二进制下的乘法器因为只有0、1两个值,不需要像十进制的乘法器那样按位相乘之后还要看进位。二进制下,被乘数直接和乘数的第N位与,结果左移N位(例:和第0位与的结果左移.原创 2020-08-17 12:43:50 · 4035 阅读 · 0 评论 -
Why Memory Barriers中文翻译(下)
转载自:http://www.wowotech.net/kernel_synchronization/why-memory-barrier-2.html在上一篇why memory barriers文档中,由于各种原因,有几个章节没有翻译。其实所谓的各种原因总结出一句话就是还没有明白那些章节所要表达的内容。当然,对于一个真正的热爱钻研的linuxer,不理解的那些章节始终都是一块心病。终于,在一个月黑风高的夜晚,我发了一封邮件给perfbook的作者Paul,请其指点一二。果然是水平越高越平易近人.转载 2020-06-22 18:38:49 · 1149 阅读 · 2 评论 -
Why Memory Barriers?中文翻译(上)
转载自:http://www.wowotech.net/kernel_synchronization/Why-Memory-Barriers.html本文是对perfbook的附录C Why Memory Barrier的翻译,希望通过对大师原文的翻译可以弥补之前译者发布的关于memory barrier的一篇很拙劣的文章的遗憾。本文的翻译不是一一对应的翻译,主要是领会精神,用自己的语言...转载 2020-05-03 16:22:11 · 2373 阅读 · 15 评论 -
计算机组成原理小结
一、概述计算机系统的层次结构 冯诺依曼机器 计算机由运算器、控制器、存储器、输入和输出五大部分组成,并且以运算器为核心 指令和数据以二进制形式、同的地位存放于存储器中,并且可以按址访问 指令由操作码和地址码组成,顺序存放于存储器中 普林斯顿体系(冯诺依曼)VS哈佛体系 五大部件的基本工作原理二、总线计算机总线的概念 总线的分类 片内总线 系统总线 ...原创 2020-04-07 22:33:09 · 428 阅读 · 0 评论 -
8086汇编小结
本文总结自:王爽的《汇编语言》8086机器启动过程 寄存器 内存 端口 中断 汇编子程序一、机器启动过程参看“《从机器启动到内核初始化》”二、寄存器通用寄存器:AX、BX、CX、DX、SI、DI、SP、BP 段寄存器:DS、CS、SS、ES 指令指针:IP 标志寄存器:flag三、内存访问[...]:内存访问的符号 括号内放偏移地址 ...原创 2020-04-07 22:28:10 · 359 阅读 · 0 评论 -
Amdahl
一、概念 系统中某一部分性能提升之后,对系统整体的影响取决于该部分所占的执行比例和加速比。二、公式推导 加速比:Amdahl(S)=Told/Tnew 设性能提升部分占比为α,其加速比s=Told`/Tnew`,则Tnew=(1-α)*Told+Tnew`,其中Tnew`=Told`/s,Told`=α*Told,所以Tnew=(1-α)*Told+α*To...原创 2020-04-07 22:19:01 · 576 阅读 · 0 评论 -
快照(Snapshot)技术发展综述
版权声明:本文为转载文章,原博主遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。摘要:传统数据备份技术存在备份窗口、恢复时间目标RTO和恢复时间点RPO过长的问题,无法满足企业关键性业务的数据保护需求,因此产生了数据快照技术。本文对快照技术的概念、特点、实现技术和发展现状进行了概括性阐述,并对其未来的发展进行了展望。关键词:快照,备份,复制,镜像,写时复制,指...转载 2019-09-24 13:29:53 · 1252 阅读 · 0 评论 -
java对象的对齐规则
零、注记本文是一次讨论的流水账,旨在讲明原理就行了,行文大家不要抱太大的希望。另外,特别重要的是,本文是基于hotspot来讨论的,不同的java虚拟机是有不同的,这一点,一定要注意。一、什么是对象的内存布局简单一句话:对象实例在jvm堆内存中存放的结构。就是随便实例化一个对象new Object(),他在堆内存里面是怎么放置的。看下面这个jol工具给出的java.mat...原创 2019-09-22 18:57:17 · 4858 阅读 · 0 评论 -
【Linux】从机器启动到内核初始化
声明:文章是个临时起意的小科普文,不是很严谨,建议多看文中提及的参考资料或者亲自扒Linux源码。一、8086机器启动过程该部分参考资料:王爽《汇编语言》李忠、王晓波《x86汇编语言:从实模式到保护模式》于渊《一个操作系统的实现》刘超《趣谈Linux操作系统》1.1 CPU加电复位CPU加电复位,主要是预置处理器中寄存器的初始状态。在8086CPU中...原创 2019-07-18 17:07:19 · 435 阅读 · 0 评论