随笔分类 - Documents
4.红黑树
摘要:红黑树 红黑树是一种自平衡的二叉查找树,属于AVL平衡树的一种特殊形式 特征: 每个节点要么是红色,要么是黑色。 根节点是黑色。 每个叶子节点(NIL)是黑色。 如果一个节点是红色,则其两个子节点必须是黑色。 从任一节点到其每个叶子的所有路径,都包含相同数目的黑色节点。 红黑树的这5条性质,使得一棵
3.AVL平衡树
摘要:AVL平衡树 特征: AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质 AVL 树是一种平衡二叉搜索树 属性: 节点高度 节点平衡因子:节点左子树的高度减去右子树的高度,空节点的平衡因子为0 AVL 树旋转: 作用: AVL 树的特点在于“旋转”操作,它能够在不影响二叉树的中
1.树
摘要:树 在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系 树结构是一种非线性存储结构,存储的是具有一对多关系的数据元素 树的分类: 树 二叉树 按树的结构: 满二叉树 完满二叉树 完全二叉树 按搜索功能: 查找:(索引) 二叉查找树(BST) 非平衡查找树 平衡树二叉树 AVL树
6.堆
摘要:堆 定义:完全二叉树的一种特定应用 特征: 最底层节点靠左填充,其他层的节点都被填满(完全二叉树特性)。 根节点称为“堆顶”,将底层最靠右的节点称为“堆底”。 对于大顶堆(小顶堆),堆顶元素(根节点)的值是最大(最小)的。 堆分类: 小顶堆:任意节点的值≤其子节点的值 大顶堆:任意节点的值≥其子节点
00.定义
摘要:定义 算法(algorithm) 是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性: 问题是明确的,包含清晰的输入和输出定义。 具有可行性,能够在有限步骤、时间和内存空间下完成。 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 数据结构(data structure)
1.思维导图
摘要:数据结构和算法 线性表 数组 链表 单链表 双向链表 循环链表 双向循环链表 静态链表 栈 顺序栈 链式栈 队列 普通队列 双端队列 阻塞队列 并发队列 阻塞并发队列 树 二叉树 平衡二叉树 AVL树 红黑树 完全二叉树 满二叉树 平衡二叉查找树 多路查找树 B树 B+树 2-3树 2-3-4树 堆
0.学习路径
摘要:学习路径: 阶段一:算法入门 我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效率等方面的内容。 阶段二:刷算法题 建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线
09.网络IO技术-阻塞、非阻塞、同步、异步
摘要:简介 同步调用、异步调用的说法,是对于获取数据的过程而言的。 例如发生read调用时,内核将数据从内核空间拷贝到应用程序空间。这个过程是在read函数中是同步进行的。如果内核实现的拷贝效率很差,read调用就会在这个同步过程中消耗比较长的时间。 IO操作分两个阶段: 等待数据准备好 –读到内核缓存
04.*网络层、IP(三层)
摘要:网络层又叫IP层: 主要的解决问题: 数据包的转发,IP to IP 路由选择 IP地址的分配 分片和重组 IP地址: 分类: Img CIDR(Classless Inter-Domain Routing): CIDR是一种更灵活的网络划分方法,它将IP地址和子网掩码写在一起。将IP 地址被划分为
03.数据链路层、MAC(二层)
摘要:数据链路层又叫MAC层 MAC:Medium Access Control,即媒体访问控制,存在连接的设备 to 设备 MAC地址 是一个局域网内才有效的地址 目标MAC地址 只要过网关,就必定会改变 目标MAC地址 记录的是下一跳的地址 MAC层 主要解决问题: 解决包的接收对象 解决包的有序、并
08.*应用层、HTTP(七层)
摘要:HTTP 发送格式: 图片 响应格式: 图片 HTTPS 与HTTP相比,多了SSL/TLS 握手协议 概念:前向安全性: 密钥泄露后,即使拿到以前的记录,也无法通过密钥进行破解 RSA、DH加密算法是非前向安全的;ECDHE是前向安全的 SSL/TLS 握手协议: 目的: 通过非对称加密算法,握手
05.*传输层、TCP(四层)
摘要:传输: 数据传输格式: MAC层定义了本地局域网设备的传输行为 IP层定义了整个网络端到端的传输行为 传输层定义应用程序到应用程序的传输,基于端口区分 这两层基本定义了包的特性: 网络传输是以包为单位的,MAC层叫帧Frame,IP层叫包Packet,包被分片后叫Fragment,传输层叫段Segm
10.网络文件IO优化
摘要:10. 网络文件IO优化 本地磁盘中文件发送到网络中: 1. 直接 IO 技术 Img 内核缓冲区又叫做Linux系统的Page Cahe。 为了加快磁盘的IO,Linux系统会把磁盘上的数据以 Page为单位缓存在操作系统的内存里,这里的Page是 Linux 系统定义的一个逻辑概念,一个Page
99.socket编程
摘要:简介 基本信息: 在内核中,Socket是一个文件,对应一个文件描述符。文件描述符是一个整数,是描述符数组的下标值 每一个进程都有一个数据结构 task_struct,里面指向一个文件描述符数组,表示这个进程打开的所有文件的文件描述符 socket 对应的 inode 指向了 Socket 在内核中
QA
摘要:基础 内核源码:https://elixir.bootlin.com/linux/latest/source ★★★ 各层协议的作用,以及 TCP/IP 协议的特点。 ★★☆ 以太网的特点,以及帧结构。 ★★☆ 集线器、交换机、路由器的作用,以及所属的网络层。 ★★☆ IP 数据数据报常见字段的作用