自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 mysql的索引

B+树更像是一种逻辑上树,每块目录页读后可以快速的解析。主要是不超过4层的高度,让引擎只用在磁盘读不超过4次,而且可以范围查询。主索引这样的也就是聚簇索引(记录和索引在一起)。

2024-09-25 23:24:57 512

原创 右值是什么

面试官:右值是什么我:除了左值就是右值?(不确定)面试官:今天的面试就到这里吧。

2024-09-25 21:37:02 309

原创 内存分配和对齐

/ 早年间的一些 CPU 是不支持没有对齐的内存访问的,但是在现代 CPU 上已经没有了这个问题,编译器也提供了一些选项可以让我们明确指出不需要内存对齐。当一个内存块被释放后,内存分配器会检查相邻的内存块是否也是空闲的。如果是,分配器可能会将这些内存块合并成一个更大的块,减少碎片化,提升内存分配效率。2、每个变量相对于起始位置的偏移量必须是该变量类型大小的整数倍,不是整数倍空出内存,直到偏移量是整数倍为止。内存分配器管理堆上的内存块。大的块被分配后会分割多余的小的块,小的块释放后就合并成大的块。

2024-09-23 00:12:59 1047

原创 快排平均复杂度的定性定量分析

另一方面,划分可能是“好”的或者“差”,如果交替的出现,两次可以“混合”为一次“好”的划分。某天,面试官:“解释一下std::sort的实现,定性定量的分析一下快排的平均时间复杂度。假设按按一定比例划分数组,最后的二叉树是倾斜的,但是我们能看到最大深度也是。那么我们可以把随机情况当作是按比例划分的组合复杂度应该也是。个元素比较的期望”,所以保留了这个过程。大的元素之外的元素被某一步被选为主元素,级别的,所以按某种比例划分复杂度也是。大的元素是否比较 {0、1}。大的元素比较的期望为。

2024-09-13 01:37:32 855

原创 锁和线程同步

一般加锁的过程,包含两个步骤:第一步,查看锁的状态,如果锁是空闲的,则执行第二步;第二步,将锁设置为当前线程持有;Compare And Swap或者 Test-and-Set 函数就通过硬件,把这两个步骤合并成一条硬件级指令,形成原子指令,这样就保证了这两个步骤是不可分割的,要么一次性执行完两个步骤,要么两个步骤都不执行。最底层的两种就是「互斥锁和自旋锁」,有很多高级的锁都是基于它们实现的,它们是各种锁的地基,所以我们必须清楚它俩之间的区别和应用。

2024-09-09 20:19:58 734

原创 对称加密非对称加密

加密和解密使用相同密钥。

2024-09-07 04:01:50 967

原创 I/O复用和select,poll,epoll

select 和 poll 的原理基本相同,就是调用的方式不同。阻塞和非阻塞(超时时间设为0)都能一次系统调用完成监听多个文件描述符。select 、poll 每次系统调用都要重新插入、删除一遍队列,遍历一遍监听的 fds。从原理可以看出 select 和 poll 都是水平触发的(不处理时,文件的就绪状态没有改变)。epoll 在内核里维护了树和队列,文件状态改变时主动回调查询树,插入队列。

2024-09-07 03:53:26 1153

原创 简易线程池

对于混合型任务(既包含I/O操作,又包含计算任务),可以拆分成两个子任务,分别提交到相应的线程池。将线程池分为两个部分:一个专门处理I/O密集型任务(这些任务可能会因为I/O操作而长时间阻塞),另一个专门处理计算密集型任务(这些任务需要大量CPU计算但不涉及长时间等待)。现代处理器通常有多个内核,多个线程可以在不同的内核上同时执行,实现真正的并行处理,从而提高程序的执行效率。线程池通过控制线程的数量,避免线程过多导致频繁的上下文切换,从而降低系统的开销,提高任务执行的效率。:专门处理I/O密集型任务。

2024-09-06 11:38:26 842

原创 std::move与std::forward

std::forward:完美转发,强转成特例化的引用类型,用于传递万能引用的参数到调用函数的时候,需要原因是:在 C++ 中,所有有名字的对象,无论它们的类型是左值引用还是右值引用,在它们的作用域内都会被当作左值对待。

2024-09-06 04:01:06 769

原创 求期望次数:合成大西瓜

这就是马尔科夫链,A会趋近一个固定值,这里,我们可以想象,n很大的时候,在0的位置,也就是赢的概率趋近1。A[0]_{cnt}表示cnt次能到的概率,a_{cnt}=A[0]_{cnt}-A[0]_{cnt-1}就表示cnt次转移到达终点的概率(a_{cnt}会很快趋近于0)。

2023-04-01 19:07:20 152

原创 最短路简介

在图论中最短路径是两个节点之间经过的边权值之和最小的路径,是一种在图上的搜索,满足最优子结构(可以使用动态规划和贪心算法)最优子结构:最短路径的子路径也是最短路径(有可以到达的负环的图不满足最优子结构)

2023-03-30 12:59:41 859 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除