<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Legwhite的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Legwhite</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Legwhite]]></copyright><item><title><![CDATA[「python」快速入手]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/127753531</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/127753531</guid><author>Legwhite</author><pubDate>Sat, 18 Feb 2023 17:04:07 +0800</pubDate><description><![CDATA[这里def 其实就是define的缩写。]]></description><category></category></item><item><title><![CDATA[「mysql」索引]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/127016216</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/127016216</guid><author>Legwhite</author><pubDate>Tue, 04 Oct 2022 13:34:14 +0800</pubDate><description><![CDATA[请问一个数据库的数据是否会变多？答案肯定毋庸置疑，一定会。变多导致的后果是啥呢？一定是在mysql的(简单理解一个内存空间) 中有多个page，拿是否需要管理起来呢？那么管理的本质是啥呢？先描述在组织，从我给你的page的结构不难看出应该是用双链表的结构那么现在又有一个比较现实的问题：如何高效的对数据增删改查呢？查找的本质是啥？就是如何一次性排出更多的数据。]]></description><category></category></item><item><title><![CDATA[[linux] 网络基础]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/125389474</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/125389474</guid><author>Legwhite</author><pubDate>Thu, 23 Jun 2022 14:40:10 +0800</pubDate><description><![CDATA[大家好今天浅聊一下电脑与电脑之间是如何通信的，通信的方式，没有网络的情况下如何进行通信等…………
在最早的时候如果要跨主机间通信一般都是物理交互(需要存储介质) 图 1-1，但显然这样的效率明显不高且成本也有点高，那么为了提高效率就有了局域网(用交换机连接多台主机) 图1-2（1-1）
（1-2）那么在局域网中传输数据一定也是需要某种机制()保证数据可以安全的到达目标主机协议广义层面来讲其实就是约定，只要俩台主机间约定，那么他们之间可以保证数据不会丢失。但是现在又出现了下面的问题协议：约定的规则（共识）协议]]></description><category></category></item><item><title><![CDATA[[linux] 进程间信号]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/124941843</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/124941843</guid><author>Legwhite</author><pubDate>Tue, 31 May 2022 17:44:40 +0800</pubDate><description><![CDATA[信号在生活中无处不在，上下课铃，红绿灯，闹钟等，这一切都是信号，可是我们是如何识别信号的呢？无非就是有人定义将信号与意义绑定，并灌输。在操作系统中也存在信号，那么我们一起来看看吧


文章目录1 理解信号1.1 见识Linux中的信号1.2 如何产生信号1.3 信号的处理
1 理解信号
信号不管是在生活中还是在操作系统中其实都可以简单看为三部分

是什么
为什么
怎么处理

而在操作系统层面来看并不需要知道为什么(毕竟信号也是工程师定义的)，他只需要知道是啥信号和收到信号后要如何处理，其实生活中收到信号也是]]></description><category></category></item><item><title><![CDATA[[Linux]进程间通信]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/124797367</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/124797367</guid><author>Legwhite</author><pubDate>Mon, 30 May 2022 06:56:01 +0800</pubDate><description><![CDATA[文章目录进程间通信管道
进程间通信
进程间通信的本质：让进程看到同一块空间
管道

]]></description><category></category></item><item><title><![CDATA[[Linux] 动静态库]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/124797470</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/124797470</guid><author>Legwhite</author><pubDate>Wed, 18 May 2022 07:17:34 +0800</pubDate><description><![CDATA[emmm库这个只要是学编程的应该都用过吧，如C语言中的stdio……里面都是官方实现好的常用函数的集合方便我们使用,但是有时可能官方没有实现，那么就可以去找大佬的写好的库。


文章目录理解动静态库制作动静态库
理解动静态库
简单理解，动静态库，其实就对库使用的方式，如下面的故事

假设家里没一切电子设备，这个时候需要去查资料，那么你就要去附近的网吧(动态库) ,但是有一天你和你爸说给我买个电脑方便查资料，你爸给你买了，那么查资料就可以直接在家里查(静态库)

从上面的故事直观的可以看出，动态库的成本明显比]]></description><category></category></item><item><title><![CDATA[[Linux] 基础 IO]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/124592664</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/124592664</guid><author>Legwhite</author><pubDate>Tue, 10 May 2022 19:28:42 +0800</pubDate><description><![CDATA[万字带你理解IO]]></description><category></category></item><item><title><![CDATA[[Linux从无到有]进程的创建、终止、等待、替换]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122987890</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122987890</guid><author>Legwhite</author><pubDate>Sun, 01 May 2022 12:49:43 +0800</pubDate><description><![CDATA[进程是如何创建的？他又如何终止呢？进程等待又是如何等呢？替换进程还可以替换？如果你有这些问题那么这篇文章会为你解答




文章目录进程的创建进程的终止进程等待进程替换内存池



进程的创建
要创建一个进程有一下的方式

直接运行（Linux下./ 运行）
程序中调用fork()函数创建子进程

那么这次在深度剥析一下它的底层是如何实现的
进程的终止
如果要
进程等待
进程替换
内存池

...]]></description><category></category></item><item><title><![CDATA[[STL数据结构] AVL底层 与 红黑树]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/124280823</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/124280823</guid><author>Legwhite</author><pubDate>Sun, 01 May 2022 12:29:51 +0800</pubDate><description><![CDATA[之前的搜索二叉树大家明显可以看出它的缺点，搜索二叉树的效率为logN，插入节点有序的时候效率退化为O(N)



文章目录平衡二叉树红黑树
平衡二叉树
解决这一问题用一个平衡因子来控制左右子树的高度差不超过1，使二叉树避免单支，保持平衡，避免单支

AVL树节点定义：
templete&lt;class K,class V&gt;
struct AVLTreeNode
{
	AVLTreeNode&lt;K,V&gt; * _left;
	AVLTreeNode&lt;K,V&gt; * _right;
	]]></description><category></category></item><item><title><![CDATA[[STL与数据结构]搜索二叉树]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122960053</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122960053</guid><author>Legwhite</author><pubDate>Fri, 18 Feb 2022 10:00:22 +0800</pubDate><description><![CDATA[大家好呀！今天带来的文章是平衡二叉树，你是否在写题的时候遇到需要容器存储，且是否效率低下，没事搜索二叉(map,set的底层)树帮你解决问题


文章目录搜索二叉树的底层结构造轮子理解底层

搜索二叉树的底层结构

定义

搜索二叉树的左子树永远比根小，右子树永远比根大，且树中值唯一确定(目前是)，如图所示:



你仔细看发现每一棵子树都是按照那个规则的，你在仔细看如果按照中序遍历（左，根，右）打印的话能会发现，竟然是一个升序的序列

问

那么这个用这个结构差找效率是多少呢？到底有多快呢？

答

搜索]]></description><category></category></item><item><title><![CDATA[[C++]面向对象语言三大特性--多态]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122863622</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122863622</guid><author>Legwhite</author><pubDate>Sat, 12 Feb 2022 16:54:16 +0800</pubDate><description><![CDATA[大家这篇文章描述的是我在学习多态时的一些学习笔记，和问题，还有一些面试题，希望这篇文章对你会有帮助


文章目录什么是多态？如何才可以看到多态这一属性呢？(概念)什么虚函数？如何使用多态？C++奇葩的设计(多态篇)一些看起来挺实用，但是感觉又没啥用的操作多态的底层是如何实现的？

什么是多态？
下定义之前先讲个例子：

加入你是一个铲屎官，且家里有三个祖宗  ???? 、???? 、????，那么在要干饭的时候，你为他们准备的食物分别是  猫粮，狗粮，胡萝卜。那么这里为不同的宠物准备不一样的食物就可以看做多]]></description><category></category></item><item><title><![CDATA[【Linux从无到有】进程的地址空间]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122798745</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122798745</guid><author>Legwhite</author><pubDate>Fri, 11 Feb 2022 16:16:07 +0800</pubDate><description><![CDATA[地址空间想必大家听的耳朵都起茧子了，栈区、堆区、静态区……这个地址空间其实还有更多的秘密，那么就一起来探索吧


文章目录进程地址空间

进程地址空间
我们先回顾一下空间排布如图所示：


这里或许有一个比较新的概念就是栈与堆相对增长，堆往高地址增长，栈往低地址增长，实践出真知，我们来验证一下吧

代码：
int main()
{
  char *a=(char*)malloc(1);
  char *b=(char*)malloc(1);
  char *c=(char*)malloc(1);
  cha]]></description><category></category></item><item><title><![CDATA[[C++] 面向对象语言的三大特性--继承]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122700362</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122700362</guid><author>Legwhite</author><pubDate>Tue, 08 Feb 2022 15:05:19 +0800</pubDate><description><![CDATA[文章目录什么是面选对象语言的三大特性？什么是继承？
什么是面选对象语言的三大特性？
这里先简单来说下什么是面向对象的三大特性

封装
继承
多态

封装

把函数和变量全部整合在一起进行管理，保护，如兵马俑如果不造围墙保护起来，限定你的活动范围起来，不然这些文物没几年说不定就消逝了。而封装也是一样把重要的数据给保护起来，暴露我想给接口访问

  

什么是继承？
  
继承这个词一般是在那个场景会用到呢？意志，或者家产

那我们来以这个例子来引出继承吧
void test1()
{
    int a =1]]></description><category></category></item><item><title><![CDATA[[动态规划与回溯算法] 01背包]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122409160</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122409160</guid><author>Legwhite</author><pubDate>Mon, 10 Jan 2022 18:21:01 +0800</pubDate><description><![CDATA[01背包问题
题目描述：


大白话：有n个商品且每个商品的价格和重量都不一样，现在有一个m空间大小的包，你在n个商品中选取并使包中物品价格和为最大值


思路：
小时候不是有一篇课文叫小猴子下山，现在博主自编后续(如有雷同纯属巧合)
故事中所会遇到的物品


回到家的小猴子很不甘心就发明了一个时光机，这次他带着一个背包穿越时空，这次他依旧是原路程下山他先看到了 ????他放入的包里，继续下山他看到了????他看了下包里空间又把桃子放入包中，继续下山这次看到了????看了看包里的容量这个时候小猴子需要进行一]]></description><category></category></item><item><title><![CDATA[[动态规划与回溯算法]斐波那契数列与变形]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122371326</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122371326</guid><author>Legwhite</author><pubDate>Fri, 07 Jan 2022 20:00:18 +0800</pubDate><description><![CDATA[大家好这是我的一个新的专题，动态规划，这里有我大量学习DP（动归）的学习笔记，和我的见解，但是博主在这一块一个是一个小白，还在摸索如果有我那里有错误，或者有更好的思路请你在评论区留言

动态规划三加一准则

三：
状态定义
转移方程
定义初始状态

一：
数组（一维，二维）

其中比较难得的就是状态的定义和转移方程，一般把这俩个想明白定义出来，那么这个道题基本上可以算是写出来了。一般来说状态定义都是从问题中抽象出来的……
你或许好奇为啥要数组呢？

因为DP其实也是一个分治的算法(大问题化成小问题)，DP一]]></description><category></category></item><item><title><![CDATA[[动态规划与回溯算法] 路径问题]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122331366</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122331366</guid><author>Legwhite</author><pubDate>Fri, 07 Jan 2022 19:57:15 +0800</pubDate><description><![CDATA[第一层 三角矩阵
题目描述：


大白话：计算顶部到底步的路径，路径值相加求这个三角形的路径和中值最小，且每一步看一移动到当前位置的下一行，或下一行下一个 如    index:(i,j) --&gt; (i-1,j) 或(i-1,j-1)


思路1:
“三”
状态抽象：

由题可以知道我们需要求最小路径和，也就是最后最后一个位置的路径和，那么我们就可以先求第i个位置 如图所示：

那么我们要知道到i节点的路径和，就和求最后位置一样，且我们还需要保存第i个状态的结果，因为 i 这个结果是 i+1 个位置需]]></description><category></category></item><item><title><![CDATA[[剑指offer] 第二层]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122212692</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122212692</guid><author>Legwhite</author><pubDate>Sat, 01 Jan 2022 21:28:28 +0800</pubDate><description><![CDATA[栈的压入与弹栈序列
题目描述：


回顾栈的基本结构：

栈的结构是先进后出，后进先出

入栈序列:[1,2,3,4,5]     出栈序列[4,5,3,2,1]，否属于同一个栈出入序列?
提示 ：入栈中可能有元素可能会栈



思路:

用一个栈模拟实现入栈，且在入栈时和出栈序列比较是否该元素提前出栈


...]]></description><category></category></item><item><title><![CDATA[[剑指offer]重建二叉树]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122062143</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122062143</guid><author>Legwhite</author><pubDate>Sat, 25 Dec 2021 20:00:24 +0800</pubDate><description><![CDATA[文章目录第一层 二叉树遍历第二层 给定前中序构建一个二叉树
第一层 二叉树遍历
题目介绍


给定一个（前序遍历）字符串，构建二叉树，并且以中序打印，#==nullpet ,  ’ ‘==空树

如果忘记请看这篇博客-----&gt;回顾二叉树概念



思路


前序是先根遍历，在左子树，右子树
分别对树的左右区间进行构造
根据# 进行构建树那么就会一下俩种情况


碰到一个#就说明当前的构建的区间已经全部构建完毕，已经没有元素可以构造了（类似中序遍历一直走到叶子节点）
而碰到##就代表遇到的是叶子节点代]]></description><category></category></item><item><title><![CDATA[【剑指offer】第一层]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122022363</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122022363</guid><author>Legwhite</author><pubDate>Sun, 19 Dec 2021 13:13:14 +0800</pubDate><description><![CDATA[文章目录二维数组中查找旋转数组中最小的数字数组中出现次数超过一半的数字絮絮叨叨的家常

二维数组中查找

题目描述

思路

遍历法


只要是这种查找的题都有一个通解就是遍历，显然如果是面试那么offer就要????了，代码自行写，本质就是一个二维数组


利用条件法(瞎取的)


从题可以看出每一行都是左右递增，每一列都是上下递增，那么我们就可以利用这个特性，

target和第一行的最后一个元素比，那么会出现俩种状况

targe大于最后元素
因为是左右递增，那么targe就不会在当前行，直接排除当前]]></description><category></category></item><item><title><![CDATA[[Linux从无到有] 进程]]></title><link>https://blog.youkuaiyun.com/Legwhite/article/details/122004168</link><guid>https://blog.youkuaiyun.com/Legwhite/article/details/122004168</guid><author>Legwhite</author><pubDate>Fri, 17 Dec 2021 20:30:30 +0800</pubDate><description><![CDATA[文章目录1. 进程1.2 PCB1.2.1上下文数据1.2.2 内存指针1.2.3状态pid和ppid与fork(创建进程)与标识符1.2.4优先级1.2.6 程序计数器
1. 进程
大家应该对任务管理并不陌生吧，有时候app卡死了我们就需要手动去吧这个app杀死，但仔细看会发现他上面写的是进程

简单来说，一般点开app就是把软件的代码和数据加载到内存中，这样算是一个进程了，但是其实内部还进行了更多的操作，他还会为这个代码创建一个PCB（sask_struct)


1.2 PCB
什么是PCB？

进程]]></description><category></category></item></channel></rss>