自定义博客皮肤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)
  • 收藏
  • 关注

原创 Git学习笔记

Git教程,Git各种命令的实践

2023-03-13 17:32:04 342 1

原创 Redis入门

Redis(Remote Dictionary Server),即远程字典服务;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

2022-11-18 13:33:15 527

原创 socket编程

数据从一台主机到另一台主机不是目的,真正的目的是让对端主机提供数据处理的服务。而数据是人通过特定的客户端产生的,发送给特定的服务器。客户端本身是一个进程,而服务器也是一个进程,所以网络通信的本质就是进程间通信。

2022-10-24 23:24:52 1629

原创 多路复用之——epoll

epoll 与 select,poll 一样,其本质目的都是为了实现IO多路复用,将对多个文件描述符的等待时间重叠,提高 IO 的效率。但 epoll 不同的是,epoll 几乎解决了 select 和 poll 的所有缺点,具备之前所说的一切优点。

2022-10-23 19:45:53 1293

原创 多路复用之——select

系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序同时监视多个文件描述符的状态变化;程序会停在select这里等待,直到被监视的文件描述符有一个或多个发生了状态变化;

2022-09-26 22:48:32 1679

原创 高级IO详解——五种IO模型

任何的IO过程中,都包含两个步骤,等待数据与拷贝数据。而且在实际的应用场景中,等待消耗的时间往往都远高于拷贝的时间。让IO更高效,最核心的办法就是让等待的时间尽量少。所以,高效的IO本质就是,减少单位时间内,”等“的比重。

2022-09-19 23:24:09 764

原创 浏览器中输入url后,发生的事情

分别从应用层,以及更底层的细节来谈在浏览器中输入url后发生的事情

2022-09-17 20:18:01 270

原创 数据链路层——MAC帧、ARP协议详解

数据链路层用于同一链路中的两个节点之间的数据传输。

2022-09-15 21:28:31 4108

原创 IP协议详解

IP协议提供了一种将数据从A主机跨网络送到B主机的能力。

2022-09-14 20:05:59 1515

原创 TCP协议详解

TCP全称为 "传输控制协议(Transmission Control Protocol)",要对传输进行一个详细的控制。

2022-09-12 21:45:52 2895

原创 UDP协议详解

16位源/目的端口:表示数据从哪个进程来,到哪个进程去;16位UDP长度:表示整个数据报(UDP首部+UDP数据)的最大长度;16位UDP检验和:如果校验和出错,就会直接丢弃。

2022-09-11 22:33:18 1449

原创 HTTPS详解

HTTPS是什么?HTTPS是 HTTP + Secure,简单讲是HTTP的安全版,即HTTP下加入TLS/SSL层。

2022-09-09 22:41:44 3677

原创 HTTP详解

HTTP是什么?HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务端请求和应答的标准,用于从服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效、使网络传输减少。

2022-09-08 00:14:18 929

原创 网络基础详解

协议的本质是一种约定,由编码的程序员根据标准文档,或者自己的喜好定义的。约定一个共同的标准,大家都来遵守,这就是网络协议。

2022-09-05 17:33:04 1595

原创 MySQL用户管理

MySQL中创建用户、给用户赋权、删除用户

2022-09-02 18:03:21 303

原创 MySQL事务详解

事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。

2022-08-28 20:46:35 523

原创 MySQL索引详解

索引类似于书本的目录,是存储引擎用于提高数据库表的访问速度的一种数据结构。在mysql内部,将热点数据,以B+树的形式将所有page页,进行组织成一定的数据结构,再用其配套的查找算法进行查找,叫做索引查询。

2022-08-24 00:07:20 711

原创 MySQL基础

数据库是一个存在于应用层的网络服务器,它类似于一个文件系统,使用户或用户程序更方便地管理系统上的文件。

2022-08-21 00:30:58 278

原创 【数据结构】图解七大排序

七大排序的可视化

2021-12-06 09:25:02 25322 68

原创 【数据结构】二叉树详解

二叉树概念及结构二叉树:树中节点的度不大于2的有序树,它是一种最简单且最重要的树。. 二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。二叉树的性质1. 若规定根节点的层数为1,则一棵非空二叉树的第 i 层上最多有 个结点2. 若规定根节点的层数为1,则深度为 h 的二叉树的最大结点数是3. 对任何一棵二叉树, 如果度为0其叶结点个数为 , 度为2的分支结点个数为 ,则有 =+...

2021-11-14 08:00:00 3510 18

原创 【数据结构】堆的实现

目录堆的概念及结构堆的逻辑结构与存储结构堆的实现堆的插入堆的创建堆的删除获取堆顶的数据堆的数据个数堆的判空堆的销毁实现堆的全部代码测试用例堆的概念及结构如果有一个关键码的集合K = { k0,k1 ,k2 ,…,k(n-1) },把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足: Ki <= K(2*i+1) 且 Ki <= K(2*i+2) (或Ki>=K(2*i+1) 且 Ki >= K(2*i+2)).

2021-11-07 10:50:13 1611 11

原创 队列经典问题——用队列实现栈

注:前两篇博客已经具体实现了队列,本篇博客在需要用到队列的地方会直接使用它的操作函数。目录用队列实现栈思路示例代码实现入栈出栈获取栈顶元素检测栈是否为空销毁栈全部代码测试用例用队列实现栈要求:仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop和empty)。队列是一种先入先出的数据结构,而栈是一种后入先出的数据结构,那么如何用两个队列实现栈呢?我们知道,这两种数据结构入数据的方式是相同的,那...

2021-11-02 20:55:22 919 11

原创 【数据结构】队列的实现

目录队列的概念及结构队列的实现方式数组队列链式队列链式队列的实现初始化队列入队列出队列获取队列头部元素获取队列尾部元素获取队列中有效元素个数检测队列是否为空销毁队列实现队列的全部代码测试用例队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out)。入队列:进行插入操作的一端称为队尾。出队列:进行删除操作的一端称为队头。队列的实

2021-10-30 12:39:25 1295 9

原创 【数据结构】栈的实现

目录栈的概念及结构栈的实现方式数组栈链式栈数组栈的实现初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈实现栈的全部代码测试用例栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除 操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out) 的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做

2021-10-29 13:06:16 779

原创 与阶乘有关的两个问题

问题1.求N!末尾有几个0问题2.求N!的二进制表示中最低位1的位置1.给定整数 N,求 N!末尾有多少个 01.1 问题1的分析当我们碰与N!有关的问题时,首先会考虑到要不要先将N!计算出来,但我们从本题出发,考虑哪些数相乘得10,问题就会被简化。问题举例:给定N = 10,N!= 3628800,则N!末尾有两个 0。首先考虑N!=(例如:10!= ) ,且K不能被10整除,那么N!末尾就有M个0。再考虑对N!进行质因数分解,N!=,由于,所以M只跟X,Z相关,每一对2...

2021-09-20 14:01:54 338 7

原创 汉诺塔问题

汉诺塔的来源 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。汉诺塔问题递归化我们给定n个盘子,当n = 1时,仅需将A杆上的盘子移到C杆上,即 A->C。当n = ...

2021-09-05 14:09:41 1180 2

原创 qsort(冒泡排序)函数的模拟实现

1、qsort 函数的基本介绍1.1 qsort 的标准形式我们先来看一下库函数 qsort 的标准形式void qsort(void* base, size_t num, size_t width, int(*cmp)(const void* e1, const void* e2));qsort 函数包含4个参数,无返回类型,使用时需要引头文件 <stdlib.h>。其中第一个参数 void* base

2021-08-30 10:30:51 246

原创 求出0-100000中所有的自幂数并输出

何为自幂数?自幂数指一个n位数,其各位数字的n次方之和恰好该数字本身,如:153=1^3+5^3+3^3,则153是一个自幂数,而三位自幂数又称“水仙花数”。由于我们需要0-100000之间的所有数字,故我们需要一个循环结构,并且每次循环就是对该数的一次判断,此时我们可以使用 for 循环。其判断的整体思路为:1.计算数字 i 的位数 n 2.计算数字 i 的每一位的n次方之和 sum ...

2021-08-24 10:40:45 1777

原创 二分查找函数的简单实现

目标:在一个有序数组中查找具体的某个数,如果找到了返回这个数的下标,找不到返回-1。首先给定有序数组arr[ ],int arr[] = { 1,2,3,4,5,6,7,8,9,10 };然后给定需要查找的数字,int k = 7;接着给出主函数的整体框架,int main(){ //二分查找 //在一个有序数组中查找具体的某个数 //如果找到了返回这个数的下标,找不到返回-1 int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int k

2021-08-23 11:14:03 600

空空如也

空空如也

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

TA关注的人

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