自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 跳表很难吗?手把手教你如何跳跃它!

​skiplist是一种随机化的数据结构基于并联的链表,实现简单,插入、删除、查找的复杂度均为O(logN)大多数情况下,因为是实现上是概率问题),因为其性能匹敌红黑树且实现较为简单,因此在很多著名项目都用skiplist来代替红黑树,例如LevelDBRocksDBRedis中的有序集合zset的底层存储结构就是用的skiplist。​ 目前常用的key-value哈希表:插入、查找最快,为O(1);如使用链表实现则可实现无锁;数据有序化需要显式的排序操作,即哈希表是无序的。红黑树:插入、查找为。

2023-07-09 11:55:01 391

原创 复习C中文件操作

ferror:判断文件是否读取错误而结束,返回值为真,就是文件读取遇到了错误。feof:判断文件是否读到末尾而结束,返回值为真,就是读到了文件结束。​ 5、如果没有指明文件路径,默认在当前路径下进行文件访问。(Linux的文件内容和文件属性是分开存储的)(未打开文件的属于文件系统,后面我们会讲)也要在磁盘中占据空间。

2023-07-08 09:16:52 327

原创 【超详细】MySQL环境安装

​ 可以看到它列举出来了,说明安装成功,这个时候我们把我们的安装包删掉,也可以不删,看个人选择!加上跳过授权表,这种做法比较危险,但是目前我们只需要这么做,后面我们会学如何进行用户管理!​ 如果安装服务的时候报错了,那么可以看看下面的常见问题,不行再去网上找方法解决!​ 这个步骤就是关掉它的进程,因为我们要删除它的环境,肯定先要将它的进程关闭!​ 如果存在安装包,我们可以一个一个安装包去删除,但是这里我们可以使用。​ 点击图中红色方框中的链接,下载下来,然后通过云服务器中的。

2023-07-03 13:26:10 1262

原创 初识Java

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义!不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

2023-04-21 23:30:25 672 2

原创 页表工作原理详解

​ 进入了线程这部分内容,我们需要了解更多的知识,大体就是线程概念,线程与进程的区别和联系、线程控制、线程创建、线程终止、线程等待、线程分离、线程安全、线程同步,除此之外我们还得学习互斥量、条件变量、POSIX信号量以及读写锁,最后我们还会介绍一些关于多进程的设计模式比如单例模式等,然后还会了解一下线程池的概念!​ 首先我们不会马上来讲线程的概念,因为不太好理解,我们先引入一个知识点,就是我们之前一直在谈论的页表,它的工作方式大概是怎么样的呢,我们一起来了解一下!Linux从头学15:【页目录和页表】-

2023-03-30 22:14:22 1757

原创 细谈linux软硬链接

比如桌面看到的软件保存的是其它的路径,在系统中可能你要运行的可执行程序在一个很深的目录下,就可以在较上层的目录中建立软链接来直接使用。​ 可以发现硬链接依然能够看到文件的内容,但是软链接已经失效了,因为软链接中存放的是原来源文件的路径,现在源文件没了,当然就找不到了,也可以侧面说明。**的概念,也就是说,创建一个硬链接其实就是多了一个指向源文件的一个引用,对于目录来说,只会多添加了一个。​ 其实是这样子的,还记得我们常见目录的时候,目录里面会默认存在两个目录文件吗,分别是 .

2023-03-23 22:06:51 871 1

原创 滑动窗口最大值:单调队列

​单独队列本质还是一个队列,只是我们规定这个队列是一个单调递减或者单调递增队列!⚜️单调递减和递增是什么意思呢❓❓❓​ 这里以单调递减为例,因为和我们这道题比较符合!我们举一个数学上面的例子y = ax + b,我们知道递减就是函数在某个区间上面的 y 随着 x 的增大,而不断的减小或者相等,但是如果我们定义它为单调递减,那么这个函数则变成在整个区间上面都是 y 随着 x 的增大而不断的减小!​。

2023-03-03 22:52:54 819

原创 System V IPC 共享内存详解

​ 这里我们介绍的这种通信方式也就是 system V IPC在我们后面的使用和日常见到的其实并不多,但是包括其中的,我们如果了解共享内存其原理的话,能够更好的帮助我们了解之前我们学过的进程地址空间的概念!​ 至于信号量,我们后面讲多线程的时候会再次讲,我们只引入一些概念如互斥等等,而消息队列我们就只说说其原理,不会细讲!

2023-02-23 16:24:20 706

原创 四数之和(详细题解:双指针+排序)

​ 这个大概操作和三数之和是一样的!但是有一些细节问题,就是直接是三个数与target比较,现在要变成四个数!​ 除此之外,我们四个数相加,对于这道题的数据来说是会发生溢出的,所以我们在相加的时候需要将它们的类型转化为 long 类型以上才行,而对于类型转化表达式,我们只需要对其中一个变量进行类型转化,其它的三个变量会根据不同类型进行隐式类型转化的,也就是一个类型是long,其它类型是int的话,最后相加的结果还是long!这样子就不会溢出了!​ 其它问题就和三数之和是一样的!

2023-02-14 12:56:04 444 2

原创 三数之和(详细解法:双指针+排序)

难度中等5626给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。。

2023-02-14 10:18:40 740

原创 环境变量与命令行参数详解

​ 我们将其运行编译并生成为可执行文件,当我们要运行它的时候,都得在这个可执行文件前面加一个这是为什么?​ 我们再仔细想想以前接触到的一些指令比如说等等命令,它们其实也是一些可执行文件,这个可以用指令验证一下:​ 那为什么都是可执行文件,我们自己写的就要在前面加上才能执行呢,而系统中的指令则不用呢?​ 难道说这个目录下面有蹊跷?所以我们试试看把也放到这个目录下面,看看能不能直接执行:​ 居然可以!但是我们要知道的是是系统目录,我们一般是,因为我们自己写的代码的,这样子的话会**** 的!

2023-02-09 10:22:33 511

原创 图的基本概念以及DFS与BFS算法

邻接矩阵和邻接表是相辅相成的,各有优缺点,要根据实际情况进行选择,有时候也可以一起使用他们进行搭配!一般情况下,对于稠密图,我们选择邻接矩阵;对于稀疏图,我们选择邻接表!下面我们讲解各种算法的时候,采用的是邻接矩阵来实现,因为一般我们在做oj以及实现一些算法的时候,邻接矩阵会用的比较多~

2023-02-06 07:59:01 995

原创 Linux进程状态与优先级

假设有十几个进程想要访问磁盘,磁盘该怎么办呢?操作系统对外设进行管理也是先描述再组织,操作系统里面有管理每个外设的结构体,每个外设的结构体都有一个等待队列,这些结构体可以对访问该外设的进程进行管理,假设等待队列为* ,那么。

2022-12-27 12:06:19 1009

原创 Linux进程概念

(Process)是计算机中的一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位,是结构的基础。在面向进程设计的计算机结构中,;在面向线程设计的计算机结构中,。程序是指令、数据及其组织形式的描述,进程是程序的实体。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的,还包括当前的活动,通过的值和处理的内容来表示。

2022-12-22 12:26:44 652

原创 最小生成树算法:Kruskal 与 Prim算法

。和。这两个算法都采用了。贪心算法:是指在问题求解时,总是做出当前看起来最好的选择。也就是说贪心算法做出的不是整体最优的的选择,而是某种意义上的局部最优解。。🔴 并且!

2022-12-21 10:22:03 645

原创 unordered系列关联式容器以及哈希表原理实现

unordered_map在线文档说明是存储键值对的关联式容器,其允许通过key快速的索引到与其对应的value。在中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。在内部,没有对按照任何特定的顺序排序, 为了能在常数范围内找到key所对应的value,将相同哈希值的键值对放在相同的桶中。容器通过key访问单个元素要比 map 快,但它通常在遍历元素子集的范围迭代方面效率较低。实现了直接访问操作符(operator[]

2022-12-21 10:19:26 414

原创 并查集的原理及实现

在一些应用问题中,需要。。在此过程中。适合于描述这类问题的抽象数据类型称为。比如:某公司今年校招全国总共招生10人,西安招4人,成都招3人,武汉招3人,10个人来自不同的学校,起先互不相识,每个学生都是一个独立的小团体,现给这些学生进行编号:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};给以下数组用来存储该小集体,数组中的数字代表:该小集体中具有成员的个数。(负号下文解释)毕业后,学生们要去公司上班,每个地方的学生自发组织成小分队一起上路,于是:西安学生小分队,成都学生小分队。

2022-12-21 09:48:31 441

原创 冯诺依曼体系和操作系统概念

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。截至目前,我们所认识的计算机,都是有一个个的硬件组件组成❓?首先我们得先知道,这里的指的是什么?这里的!其特点是~注意哦,虽然我们平时也把磁 盘叫做内存,但是其实,其特点是,要将其与内存区分开!并且我们磁盘是属于外部设备的,,其中,而其他的外部设备都只是只有输入或者输出!!接下来说一下,冯诺依曼体系中的,其实就是我们所说的!其实,只不过主要是这两大板块,这一点要注意!

2022-12-12 20:41:41 600

原创 哈夫曼树构建、编码、译码C++实现

这里就不仔细讲哈夫曼树的原理了,资料很多,网上和书籍都是有的,主要讲一下如何实现构建哈夫曼树和编码译码的操作!做这个实验也是花了半天的功夫,等到做完发现其实最难的不是实现,而是难在你要选用什么数据结构去搭建这个哈夫曼树以及编码译码,这个流程下来这个选用的数据结构是很重要的,决定着你的算法是如何的!我用的是实现的,数据结构方面选用了、、、,其实不用也可以,完全可以自己弄个结构体也行的,但是已经学过表示万岁 O(∩_∩)O!

2022-11-15 10:34:08 2366

原创 Linux环境基础开发工具

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包相当于“App”, 而软件包管理器相当于“应用商店”。而 yum 就是 centos 的软件包管理器。yum。

2022-11-12 17:26:03 1029

原创 【多态】【虚表指针与虚表】【多继承中的多态】

必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写那么问题来啦,什么是虚函数?重写又是什么?请看下面!

2022-08-17 09:50:44 1006 7

原创 C++继承(多继承、菱形继承?)

派生类 继承方式 基类👇 👇 👇public:// 学号};我们以上面为例子,People是父类,也称为基类。而Student叫做子类,也成为派生类。🔴注意:若不写继承方式,默认就是 private 继承!很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。多继承可以认为是C++的缺陷之一,很多后来的OO语言都没有多继承,如Java。......

2022-08-12 17:58:09 864 10

原创 C++IO流详解

如果要支持cin和cout的标准输入输出,

2022-08-09 14:43:29 3442 6

原创 【泛型编程】模板全详解

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。其中,模板分为两类,一类是函数模板,一类是类模板。template < class T1 , class T2 , . . . , class Tn > class 类模板名 {//类内成员定义 }不用再去 typedef 类型!...

2022-08-08 14:58:30 547 1

原创 【stack】【queue】【priority_queue】【deque】详解

🔍 文档介绍:stack - C++ Reference通过观察文档我们不难发现,接口相较于之前的 string、vector 和 list 少了很多。它甚至连拷贝构造和析构都没有自己实现,然而这些都得益于容器适配器的使用。不难发现, stack、queue 也没有迭代器,这也不难理解,因为栈和丢列本来不是用来遍历的,这样子的话只会破坏他们的原则。测试代码:Ⅱ.queue的介绍和使用1.queue的概念队列只允许在一端进行插入数据操作,在另一端进行删除数据操作 的特殊线性表。入队列,进行插入操作的.

2022-08-07 18:31:19 597 4

原创 leetcode:数组中的第K个最大元素

leetcode:数组中的第K个最大元素

2022-08-06 10:45:11 114

原创 leetcode: 二叉树的层序遍历

leetcode: 二叉树的层序遍历

2022-08-05 12:50:57 1546 5

原创 leetcode每日一练:逆波兰表达式求值

逆波兰表达式求值

2022-08-05 12:24:11 119

原创 List类的超详细解析!(超2w+字)

List类的超详细解析!(超2w+字)

2022-08-03 11:33:08 5060 8

原创 万字解析:vector类

vector类

2022-07-29 17:51:27 462 4

原创 每日一题:连续子数组的最大和(动态规划)

每日一题:连续子数组的最大和(动态规划)

2022-07-29 12:16:36 560 2

原创 leetcode每日一题:字符串压缩

leetcode每日一题:字符串压缩

2022-07-27 18:47:54 601 2

原创 leetcode每日一练:将句子排序

leetcode每日一练:将句子排序

2022-07-26 12:02:13 303 5

原创 leetcode每日一题:数组的相对排序

leetcode数组的相对排序

2022-07-25 15:47:21 254 6

翻译 每日一题:奇偶树

每日一题

2022-07-25 13:02:40 150

原创 二叉树的坡度

二叉树的坡度

2022-07-24 12:16:01 57

原创 Linux中权限的理解

Linux中权限的理解

2022-07-24 11:14:03 436 6

原创 整理字符串

整理字符串

2022-07-24 11:11:37 171

原创 括号的最大嵌套深度

括号的最大嵌套深度

2022-07-24 11:10:38 859

原创 搜索旋转排序数组

搜索旋转排序数组

2022-07-24 11:09:48 112 1

C语言easyx图形编程小项目--飞机大战

1.运行环境为vs2022 2.此版本为入门版本,适合新手学习。

2022-02-10

空空如也

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

TA关注的人

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