自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 十大经典排序算法

十大经典排序算法0、算法概述0.1 分类比较类排序:通过比较来决定元素间的相对次序,时间复杂度不能突破O(nlogn),称为非线性时间比较类排序。非比较类排序:不能通过比较元素间的相对次序,可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-swwJ8wZB-1619810702058)(E:\BaiduNetdiskDownload\image-20210429140038983.png

2021-05-01 03:25:46 492 1

原创 动态规化之背包问题系列

动态规划之背包问题系列,包括0-1背包,完全背包,多重背包,分组背包等。

2022-09-09 22:48:50 423 1

原创 Slab块分配器详解

slab块分配器学习笔记——包括slab思想及数据结构、高速缓存描述符结构、每处理器数组缓存、内存回收等内容。

2022-09-07 21:45:00 1411

原创 动态规划系列(二)—其他类型DP

动态规划算法学习—各类DP经典问题,包括石子合并、整数划分、数位统计、蒙德里安梦想、最短哈密顿等一系列不同类型DP问题。

2022-09-06 18:14:02 251

原创 linux内存管理系列——伙伴分配器

linux内存管理——伙伴分配器学习笔记

2022-09-02 18:52:14 309

原创 动态规划系列—线性DP

动态规划专题之线性DP,包括数字三角形、最长上升子序列、最长公共子序列、最短编辑距离等。

2022-08-29 23:19:02 114

原创 Linux 内核内存池原理与实现

实际开发中,为了避免频繁执行malloc/fre产生的内存碎片,通常会在程序中设计单独的内存管理模块,即内存池。原理:程序启动时为内存池申请一块比较大的内存区,程序在使用内存时全部是由内存池进行分配的,不再使用内存时,交给内存池回收,用于再次分配,优点在于内存分配效率的提升。...

2022-08-27 23:48:11 618 1

原创 引导内存分配器原理

Linux 内核学习笔记——引导内存分配器原理

2022-08-27 17:53:59 326

原创 C++ 常见设计模式总结

c++ 常见设计模式整理。

2022-08-22 23:18:59 1636

原创 C++ 面向对象常见问题

C++ 面向对象常见问题。

2022-07-17 21:18:25 806

原创 c++ STL面试中常见问题

C++ STL常见问题思维导图

2022-07-06 00:02:14 622 1

原创 二分图算法

二分图算法—染色法与匈牙利算法

2022-07-03 22:22:27 124

原创 最小生成树—Prim算法和Kruskal算法

最小生成树算法之Prim算法和Kruskal算法学习。

2022-07-03 17:34:03 150

原创 C++ 面试中常见11个问题

以思维导图形式梳理C++面试中常见问题。

2022-07-03 00:28:06 1535

原创 最短路算法—Floyd算法

Floyd算法

2022-06-13 23:42:45 961

原创 最短路算法—spfa算法

spfa算法

2022-06-13 22:27:36 53

原创 最短路算法—Bellman-Ford算法

Bellman-Ford算法

2022-06-10 00:29:35 181

原创 最短路系列—Dijkstra算法

最短路算法—朴素版Dijkstra算法

2022-06-08 00:20:40 178

原创 TCP实战抓包分析

两大网络分析利器:tcpdump和Wireshark。tcpdump常用在Linux服务器中抓取和分析网络包,Wireshark可以抓包,还提供可视化分析网络包的图形界面。tcpdump# -i eth0表示抓取eth0网口的数据包# icmp 表示抓取icmp协议的数据包# host 表示主机过滤,抓取对应IP的数据包# -nn 表示不解析IP地址和端口号的名称# tcpdump -i eth0 icmp and host 106.75.117.13 -nndropped privs.

2022-03-06 17:53:07 4040

原创 带你了解TCP(一)

带你了解TCP(一)基本认识报文格式序列号:连接时用随机值作为初始值,通过SYN包传给接收端,发送一次数据,累加一次数据字节的大小。用来解决网络包乱序问题。确认应答号:下一次期望收到数据的序列号,发送端收到应答号认为这个序号以前的数据已经被正常接收。用来解决不丢包问题。控制位:ACK: 该位为1时,确认应答字段变为有效。RST: 该位为1时,TCP连接出现异常必须强制断开连接。SYN: 该位为1时,表示希望建立连接。FIN:该位为1时,表示希望断开连接。常见问题为什么需要TCP

2022-02-20 17:26:45 1158

原创 Linux内核内存布局

内核内存布局64位Linux一般使用48位来表示虚拟地址空间,43位表示物理地址, 通过命令:cat /proc/cpuinfo。cat /proc/meminfoARM64架构处理器采用48位物理寻址机制,最大可寻找256TB的物理地址空间。对于目前应用完全足够,不需要扩展到64位的物理寻址。虚拟地址也同样最大支持48位寻址,所以 在处理器架构设计上,把虚拟地址空间划分为两个空间,每个空间最大支持256TB,linux内核在大多数体系结构上都把两个地址划分为:用户空间和内核空间。用户空间:0x

2022-01-16 22:56:48 983

原创 虚拟地址空间布局架构

内存管理架构内存管理子系统架构可以分为:用户空间、内核空间及硬件部分3个层面。用户空间:应用程序使用malloc()申请内存资源/free()释放内存资源。内核空间:内核总是驻留在内存中,是操作系统的一部分。内核空间为内核保留, 不允许应用程序读写该区域的内容或直接调用内核代码定义的函数。硬件:处理器包含一个内存管理单元(Memory Management Uint,MMU)的部 件,负责把虚拟地址转换为物理地址。Linux内核整体架构及子系统Linux内核只是操作系统当中的一部分,对下管理

2022-01-16 22:45:58 453

原创 Linux 物理内存组织结构

物理内存组织结构系统调用mmap虚拟内存区域使用起始地址和结束地址描述。链表按起始地址递增排序。mmap指定的偏移单位是字节,mmap2指定的偏移单位是页。ARM64架构实现系统调用mmap。系统调用munmmap系统调用munmap用来删除内存映射,有两个参数:起始地址、长度。主要委托给do_munmap。vma = find_vma(mm, start); // 根据起始地址找到要删除的第一个虚拟内存区域vma如果只删除虚拟内存区域vam的部分,那么分裂虚拟内存区域vma根据结束地

2022-01-16 22:27:37 672

原创 内存映射原理

内存映射原理物理地址空间处理器在系统总线上看到的地址。使用RISC(Reduced Instruction Set Computer RISC 精简指令集)的处理器通常只实现一个物理地址空间,外围设备和物理内存使用统一的物理地址空间。有些处理器架构把分配给外围设备的物理地址区域称为设备内存。处理器通过外围设备控制器的寄存器访问外围设备,寄存器分为控制寄存器、状态寄存器和数据寄存器三大类。外围设备寄存器通常被连续编址,分为两种方式:I/O映射方式(I/O-mapped),内存映射方式(me

2022-01-16 02:03:04 6833 1

原创 数据分析学习_目标分析

数据分析字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:d = {key1 : value1, key2 : value2}person_dict = {‘姓名’: [‘张三’, ‘李四’, ‘王五’], ‘年龄’: [23, 22, 24]}jupyter 编辑器cell 概念jupyter的主要构成元素组成:In[] 输入框; ou

2021-12-19 23:44:52 496

原创 面试问题记录

华为OD面试:1、解释下BOSS系统 计费系统2、代理是干什么的3、计费系统在线与离线区别 计费系统是否实时的 是否高并发 为什么要实时 高并发4、计费系统有没有异常机制 怎么处理的5、容器有没有部署过 怎么部署的6、集中化为什么用容器,容器的优点,好处。7、计费系统的代码为什么要用C/C++写 不用其他语言写8、支持容器化、写KAFKA、统一密码管理平台是怎么实现的(我不怎么会 含糊过去了) 为什么要这样做 基于什么目的9、为什么要搞自动化测试 自动化测试是测接口 还是界面 不是很多开源

2021-05-25 00:14:33 386

原创 二叉树与红黑树

#include <stdio.h>#include <stdlib.h>#include <string.h>#define RED 1#define BLACK 2typedef int KEY_TYPE;typedef struct _rbtree_node {unsigned char color;struct _rbtree_node *right;struct _rbtree_node *left;struct _rbtree_

2021-05-02 22:42:55 68

原创 leetcode 刷题记录_20210329_位运算

位1的个数方法1循环检查二进制位每一位是否为1。第i位与2^i进行与运算。2^i 用左移操作来表示。 需要循环32次class Solution {public: int hammingWeight(uint32_t n) { int i = 0, count = 0; while(i < 32) { if (n & (1 << i)) { count++;

2021-03-29 23:48:32 70

原创 UDP可靠性传输学习笔记

UDP可靠性传输UDP场景实时性场景:音视频的通话、游戏(王者荣耀)节省资源的要求:嵌入式设备(电池供电)、手机状态报告、户外的设备UDP与TCPKCP 简介KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。整个协议只有

2021-03-13 22:03:10 153

空空如也

空空如也

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

TA关注的人

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