自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python基础学习_2

python基础学习_2内置数据类型变量可以存储不同类型的数据,并且不同类型可以执行不同操作python有以下数据类型:数据类型关键字文本类型str数值类型int,float ,complex序列类型list ,tuple ,range映射类型dict集合类型set ,frozenset布尔类型bool二进制类型byte...

2020-03-25 10:43:01 234

原创 Python基础学习_1

Python基础学习版本:python3了解pythonpython是一种解释性的编程语言可用于web开发:在服务器上使用python来创建web应用程序可以与软件来创造工作流可连接数据库,还可以读取和修改文件数学:可用于处理大数据并执行复杂的数学运算软件开发,系统脚本python的优点适用于不同的平台(Linux,mac,windows,Raspberry Pi等)...

2020-03-23 19:57:23 200

转载 类的三种继承方式

转自:https://blog.csdn.net/COCO56/article/details/80467975注:若不指明继承方式,则默认是私有继承。一:对于公有继承(public)方式:基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接派生类中访问(可通过调用基类中访问属性为公有或保护的成员函数来访问基类中的私有成员)。即派生类中的...

2019-10-11 23:42:11 2016

原创 常见排序

插入排序基本思想:把待排序的记录按其关键码值的大小,逐个插入到一个已经排好序的序列的有序序列中,直到所有记录插入完成为止,得到一个新的有序序列。如图:插入第i个元素时,与前i-1个元素依次比较,找到插入位置,原来位置上的元素依次向后移动。插入排序特性元素越接近有序越,直接插入排序的的效率越高时间复杂度是O(N^2)空间复杂度是O(1)稳定性:稳定例题:链表的插入排序/*...

2019-09-29 12:16:17 152

原创 IP协议

TCP/IP:经过路径选择,将数据从A主机可靠的跨网络送到B主机IP:提供一种能力通过路径选择,将数据从A主机跨网络传给B主机IP地址=网络号+主机号关于主机和路由器主机:配有IP地址,但是不进行路由控制的设备路由器:即配有IP地址,又能进行路由控制节点:主机和路由器的统称...

2019-08-23 23:24:23 293

原创 操作系统——进程终止,进程等待

进程终止退出的几种场景代码运行结束,结果正确代码运行结束,结果不正确代码异常终止进程常见的退出方法正常终止从main返回调用exit_exit异常终止Ctrl+c 信号终止注意exit()和_exit的区别_exit函数#include <unistd.h>void _exit(int status);//参数:status定义的进程的终止...

2019-08-05 16:50:58 870

原创 操作系统——进程创建

进程创建fork()函数功能:从原进程中创建一个新进程,新进程为子进程,原进程为父进程#include <unistd.h>pid_t fork(void);返回值:子进程中返回0,父进程中返回进程id,出错返回-1进程调用fork(),当控制转移到内核中的fork()代码后,内核:分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝到子进程添加子进程...

2019-08-04 15:58:05 1006

原创 操作系统——程序地址空间

我们先看两段代码,然后比较结果 1 #include <stdio.h> 2 #include <unistd.h> 3 #include <stdlib.h> 4 int g_val=0; 5 6 int main() 7 { 8 pid_t id=fork(); 9 if(id<0)...

2019-08-04 12:35:13 287

原创 操作系统——进程(2)

进程的状态R运行状态(running):运行状态不代表进程就一定在运行中,它表示进程在运行中或者在运行队列里,同一时刻,只会有一个进程在CPU中运行,其他进程都在运行队列里等待,我们把运行中的进程和在运行里等待的 都叫做运行状态。S睡眠状态(sleeping):表示进程在等待事件完成,当这些事件完成之后,进程就会被唤醒(这里的睡眠也可以叫做可中断睡眠,进程列表中大多数进程都属于该状态,此时的...

2019-08-02 18:00:00 142

原创 TCP协议——面向字节流,粘包问题,TCP异常情况

面向字节流创建一个TCP的socket,同时在内核中创建一个发送缓冲区和一个接收缓冲区调用一个write时,数据会先写入发送缓冲区如果发送的字节数太长,就会被拆分成多个TCP数据包如果发送的字节数太短,就会在发送缓冲区中等待,等到缓冲区长度差不多了,或者其他合适的时机发出去接受数据的时候,数据也是从网卡驱动程序到达内核的接收缓冲区然后应用程序可以调用read从接受缓冲区拿数据TC...

2019-07-31 20:46:29 307

原创 TCP协议——拥塞控制,捎带应答,延迟应答

拥塞控制,捎带应答,延迟应答实际都与提高TCP的效率的机制拥塞控制上次我们谈到TCP通过滑动窗口来高效可靠的发送大量数据,但是当一开始就发送大量数据,当遇到网络比拥堵或者网络状态不佳的时候,就会引发一系列的问题。为了解决这一问题,TCP引入慢启动机制,先发少量的数据,“探探路”,然后再决定数据的发送的速度。这里引入一个拥塞窗口的概念发送开始时,定义拥塞窗口大小为1每次收到的一个ACK...

2019-07-31 19:42:35 458

原创 一个数的整数次方

大家肯定会觉得,这个题简单,有啥好写的,用pow函数不就可以。确实也可以,但是我写这篇博客的意义在于,看到除了常规情况以外的细节,让我们的代码更完善。注意点当指数为0或者1的情况当指数为负数当底数是0当底数是负数注意当底数是浮点数的时候,判断它是否为0,不能像整型一样直接判断将它==0,因为在计算机中不能够完全精准的的判断浮点数是否等于0,只能在一定范围内判断它和0相差很小,我们...

2019-07-31 16:07:36 117

原创 TCP协议——滑动窗口,流量控制

滑动窗口滑动窗口主要解决效率的问题滑动窗口在自身发送缓冲区中,可以发送数据,但不收到应到的数据量TCP的确认应答机制,在对每一个发送的数据段,都要给一个ACK的确认应答,收到ACK之后,再发送下一个数据段,虽然保证了可靠性,但是性能较低,尤其是对于数据往返时间较长时。为了解决这一问题,我们可以一次发送多条数据,就可以提高效率。如下:窗口大小就是指无需等待确认应答而可以继续发送数据的...

2019-07-29 19:44:54 271

原创 数据库——表操作,查询,修改

创建表create table 表名( 列名1 数据类型, 列名2 数据类型, )character set 字符集 collate 校验规则 engine 存储引擎字符集和校验规则如果没有另外设置,以所在数据库的字符集和校验规则为准举个例子:create table student( sno int comment '学号', s...

2019-07-28 16:44:52 386

原创 TCP协议——TCP三次握手四次挥手

TCP连接管理机制在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接完整过程三次握手建立连接服务端状态变化CLOSED->LISTEN:服务端调用listen后进入LISTEN状态,等待客户端连接LISTEN->SYN_RCVD:一旦监听到连接请求(同步报文段)就将该连接放入内核的等待队列中,并向客户端发送SYN确认报文SYN_RCVD->ESTAB...

2019-07-26 19:29:19 156

原创 TCP协议——TCP报头,确认应答机制,超时重传

TCP协议段格式TCP报头各部分意义:16位源端口号和16位目的端口号:(各占两个字节)表示数据从哪个进程来,到哪个进程去32位序号:占4字节。序号范围是0~2^32-1。TCP是面向字节流的,TCP连接中传送的字节流中的每个字节都按顺序编号。整个要传送的字节流的起始序号必须要在连接建立时设置。首部中的序号字段值指的是本报文段所发送的数据的第一个字节的序号。32位确认序号:4个字节...

2019-07-26 14:38:03 719

原创 只出现一次的数字

一个数组中其他数都是成对出现的只有一个数是出现一次的,找出这个数。来源:https://leetcode-cn.com/problems/single-number/solution/class Solution {public: //运用异或,任何数字异或它自己都等于0,留下最后的就是只出现一次的 //a^b^c^a^b=a^a^b^b^c=0^0^c=c int ...

2019-07-26 10:30:32 76

原创

栈的概念:栈是一种特殊的线性表,只允许固定一端进行插入或者删除操作,进行数据操插入和删除的一端称为栈顶,另一端称为栈底。栈中的数据遵循后进先出的原则。压栈:栈的插入操作,也叫做进栈/入栈出栈:栈的删除操作,出数据也在栈顶栈的实现一般栈可以由数组和链表实现,但是相对而言数组结构实现栈会更优一点,因为数组在尾部插入删除数据效率更高。静态栈不支持动态增长,大小固定typedef in...

2019-07-21 18:46:39 83

原创 数组中出现超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。分析语言太枯燥,太绕,直接上图吧主要两个过程:找到出现次数最多的数验证是否出现次数超过一半走到这里还不能直接下定论,出现次数多的不一定超过一半,且不一定数组遍历完之后就等于...

2019-07-21 18:32:48 83

原创 括号匹配问题

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。来源:https://leetcode-cn.com/problems/valid-parentheses有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。分析利用栈后进先出的特点...

2019-07-21 14:46:58 158

原创 UDP协议

UDP协议端的格式16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度如果校验和出错的话,就会直接丢弃UDP的特点无连接:知道目地IP和端口号就直接传输,不需要建立连接不可靠:没有确认机制,没有重传机制,如果发生网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何的错误信息面向数据报:不够灵活的控制数据读写的次数和数量关于面向数据报应用层交给UDP不...

2019-07-21 11:50:31 125

原创 OSI七层模型和TCP/IP四层模型

TCP/IP四层模型TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层)。由于物理层考虑的比较少,所以我们常称为TCP/IP为四层模型,实际上包含物理层即为五层。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自...

2019-07-20 12:01:20 176

原创 复杂链表的复制

给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。

2019-07-13 18:26:44 77

原创 链表入环的第一个结点

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。来源:https://leetcode-cn.com/problems/linked-list-cycle-ii题目分析:考虑链表为空,且...

2019-07-08 15:59:27 708

原创 链表带环问题

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。来源:https://leetcode-cn.com/problems/linked-list-cycle分析考虑链表为空,链表为一个结点时的特殊情况链表只有一个节点时,它的next指针会不会指向自身利用快慢...

2019-07-05 19:20:04 230

原创 查找单链表相交的第一个结点

编写一个程序,找到两个单链表相交的起始节点。题目来源:https://leetcode-cn.com/problems/intersection-of-two-linked-lists注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。...

2019-07-05 18:22:31 286

原创 链表的回文结构

对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。...

2019-07-04 19:46:56 66

原创 操作系统——进程(1)

认识操作系统任何计算机都包含一个基本的程序集合,称为操作系统。操作系统包括内核(进程管理,内存管理,文件管理,驱动管理)其他程序操作系统是一个单纯负责管理的软件一般来说,管理者与被管理对象不直接沟通,管理者通过信息管理被管理对象。管理方法:先将管理对象描述起来,然后在将管理对象组织起来进程进程概念:程序的一个执行实例。从内核角度看: 进程是担当分配系统资源(CPU时间,内...

2019-06-30 22:15:03 130

原创 Linux工具——make/Makefile

一个工程中的源文件有很多,按照它们的模块,功能和类型,分别放在不同的目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译。Makefile带来的好处就是自动化编译,一旦写好只需要一个make命令,就可以完成整个工程的自动编译。make与Makefile的关系make是一条命令工具,一个解释Makefile中指令的命令工具,Makefil...

2019-06-30 13:33:42 1015 1

原创 分割链表

以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Partition {public: ListNode* partition(...

2019-06-28 20:40:05 263

原创 合并两个有序链表,形成新的有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。题目来源:(LeetCode):https://leetcode-cn.com/problems/merge-two-sorted-lists示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题目分析:任意一...

2019-06-27 19:36:26 1117 3

原创 单链表的倒数第K个结点

输入一个单链表,输出它的的倒数第K个结点题目来源:牛客网https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId题目分析:因为是单链表,所以只能从前往后,不能从后往前。一个结点为n的链表它的倒数第k个结点,可以发现是正数的n-k+1个结点。特别注意当链表为空的情况当k大于链表的总结点数当k=0时,...

2019-06-26 09:58:12 111

原创 删除链表中的重复出现的结点,留下只出现一次的结点

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5题目来源:牛客网https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef?tpId题目分析:有序链...

2019-06-23 17:36:00 321

原创 返回单链表的中间结点

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。题目来源于领扣:https://leetcode-cn.com/problems/middle-of-the-linked-list/description/示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评...

2019-06-22 19:47:06 356

原创 反转一个链表

反转一个单链表题目源于领扣:https://leetcode-cn.com/problems/reverse-linked-list/description/示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题题目分析...

2019-06-22 18:01:49 339

原创 删除链表指定val值的所有元素

删除链表中等于给定值 val 的所有节点。输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5分析:当链表为空时,返回NULL当链表不为空时1.当前被删除节点是头节点(包含只有一个节点的情况)2.被删除节点不是头节点删除元素过程如图:注意:当删除的节点就是头结点时...

2019-06-20 21:28:05 956

原创 带头双向循环链表

带头双向循环链表双向带头循环链表通常以单独的数据结构出现,虽然结构比单链表复杂,但代码实现比单链表要简单一些。实现双向带头循环链表typedef int LTDataType;typedef struct ListNode{ LTDataType data; struct ListNode* next; struct ListNode* prev;}ListN...

2019-06-20 11:53:32 207

转载 关于构造函数调用次数

MyClass a:定义一个对象,调用1次构造函数。b[2]:定义含有两个元素的数组,实际上定义两个对象,所以调用2次构造函数。*c:定义指向类对象的指针,但没有进行实际的内存分配,所以不调用构造函数。**d:定义指向类对象指针的指针,但没有进行实际的内存分配,所以不调用构造函数。*e[2]:定义含有两个指向类对象的指针的数组,但没有进行实际的内存分配,所以不调用构造函数。*f=new ...

2019-05-30 15:12:50 11776

原创 数据库——库操作

数据库——库操作创建库创建名为db1的数据库CREATE DATABASE db1; 说明:当创建数据库没有指定字符集规则和校验规则时,系统默认字符集:utf8;校验规则是:utf8_general_ci创建一个使用utf-8字符集的db2的数据库CREATE DATABASE db2 charset=utf8;创建一个utf字符集并带校对规则的db3数据库CREATE DAT...

2019-05-28 19:24:44 99

原创 初识数据库

初识数据库数据库的存储介质:内存,磁盘服务器,数据库,表关系数据库服务器可以管理多个数据库,一个数据库中可以有多个表。创建数据库create database xxx(库名);使用数据库use xxx(库名);创建数据库表create table user( id int, name varchar(32), age int, gender ...

2019-05-28 18:10:42 98

空空如也

空空如也

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

TA关注的人

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