自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 八大排序算法

目录直接插入排序希尔排序(缩小增量排序)直接插入排序直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移。

2022-04-18 09:57:13 344 3

原创 Linux进程信号

目录信号入门信号的本质信号的处理产生信号通过终端按键产生信号Core Dump调用系统函数向进程发信号由软件条件产生信号硬件异常产生信号信号入门信号是进程之间事件异步通知的一种方式,属于软中断。用kill -l命令可以察看系统定义的信号列表:其中1号信号到31号信号叫做普通信号,从34到64号信号每一个信号都带了RT称为实时信号。信号的本质进程收到信号其实不是立即处理的,而是选择在合适的时候。因为信号的产生是在进程运行的任何时间点都可以产生的,有可能进程正在做更重要的事情。因为信号不是立即

2022-04-10 20:07:39 1647 9

原创 Linux进程间通信

目录进程间通信介绍进程间通信的概念进程间通信目的进程间通信分类进程间通信的本质进程间通信介绍进程间通信的概念进程间通信又称IPC(Inter-Process Communication),指多个进程之间相互通信,交换信息。进程间通信目的数据传输: 一个进程需要将它的数据发送给另一个进程资源共享: 多个进程之间共享同样的资源。通知事件: 一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制: 有些进程希望完全控制另一个进程的执行(如Deb

2022-04-04 20:02:09 5038 21

原创 Linux基础IO

目录系统文件IOopenwritereadclose文件描述符fd系统文件IOopenopen接口的作用是打开文件。头文件及参数:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);第一个

2022-04-02 20:15:08 1288 18

原创 Linux进程控制

目录进程创建fork函数初识fork函数返回值写时拷贝fork常规用法fork调用失败的原因进程创建进程创建的两种最常见的场景:1.命令行启动命令(程序、指令等)2.通过程序自身,fork出来子进程fork函数初识在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。#include <unistd.h>pid_t fork(void); //返回值:自进程中返回0,父进程返回子进程id,出错返回-1所有的fork出来

2022-03-31 20:02:50 1231 17

原创 进程地址空间

目录进程地址空间是什么为什么要存在地址空间验证地址空间的基本排布进程地址空间是什么进程地址空间不是物理地址,是一种虚拟地址,由操作系统提供。进程地址空间本质是进程看待内存的方式,抽象出来的一个概念,内核中用一个结构体mm_struct表示,这样每个进程都认为自己独占系统内存资源。在进程控制块task_struct中有一个mm_struct结构体指针,指向一个mm_struct结构体,这个结构体里面完成对各个数据区域的划分,然后通过页表映射到物理内存上。区域划分本质:将线性地址空间划分成为一个

2022-03-28 15:41:28 2489 5

原创 冯诺依曼体系结构

目录冯诺依曼体系结构简介数据流向存储分级举例说明数据的流动过程冯诺依曼体系结构简介我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。计算机本质上是有输入,并且经过计算机的计算,将结果显示到某种显示输出上,就可以称为计算机。输入单元:键盘,网卡,磁盘,话筒…输出单元:显示器,网卡,磁盘,音响…存储器没有特殊说明一般指的是物理内存。中央处理器(CPU):含有运算器和控制器等运算器在进行运算的时候无外乎两种情况,一种是算术运算,一种逻辑运算。控制器主要能够用来

2022-03-25 22:05:27 7598 10

原创 Linux进程

目录

2022-03-16 17:02:02 2646 19

原创 Linux编译器-gcc/g++使用及项目自动化构建工具-make/Makefile

目录程序编译的过程程序编译的过程

2022-03-14 11:54:17 2539 20

原创 函数栈帧的创建和销毁

目录各种寄存器的作用main()函数的调用通过汇编观察函数调用过程各种寄存器的作用eax是“累加器”(accumulator),它是很多加法乘法指令的缺省寄存器ebx是“基地址”(base)寄存器,在内存寻址时存放基地址ecx是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。edx:总是被用来放整数除法产生的余数。esp:寄存器存放当前线程的栈顶指针ebp:寄存器存放当前线程的栈底指针main()函数的调用VS2013中mainCRTStartup()函数内

2022-03-11 11:39:43 283 15

原创 shell运行原理以及linux权限

目录shell的运行原理Linux权限的概念Linux权限管理文件访问者的分类(人)文件类型和访问权限(事物属性)文件类型基本权限文件权限值的表示方法umask文件访问权限的相关设置方法chmodshell的运行原理Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。从技术角度,Shell的最简单定义:命令行解释器(command Interpreter

2022-03-10 11:48:40 430 7

原创 AVL树详解

目录AVL树的概念AVL树节点的定义AVL树如何高度平衡?右单旋左单旋左右双旋AVL树的概念二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。 因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整), 即可降低树的高度,从而减少平均搜索长度。AVL

2022-03-09 09:39:54 1652 11

原创 二叉搜索树

目录二叉搜索树概念二叉搜索树节点的定义二叉搜索树的插入二叉搜索树的查找二叉搜索树的删除二叉搜索树的应用二叉搜索树的性能分析二叉搜索树概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树下图即为二叉搜索树二叉搜索树节点的定义template<class K>struct BSTreeNode{ BSTr

2022-03-08 09:57:58 1541 11

原创 Linux常见指令

目录ls指令pwd指令cd指令touch指令mkdir指令ls指令语法: ls [选项] [目录或文件]功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a:列出目录下的所有文件,包括以 . 开头的隐含文件。 在linux中凡是 . 开头的都是隐藏文件。上图中的两个就是隐藏文件,一个 . 表示当前路径,两个 . 表示上级路径,Linux中几乎任何目录都有这两个,方便命令行进行回退到上级目录与后续运行程序。-d:将目录像文件一样显示,而不

2022-03-03 09:45:15 288 13

原创 leetcode115.不同的子序列(动态规划)

题目描述给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)问题:s中与t相同的子序列的个数子问题:s的子串中与t相同的子序列的个数状态F(i, j):s的前i个字符构成的子串中与t前j个字符相同的子序列的个数if(s[i] == t[j]):如果使用第i个字符,那这个字符只能作为子序列最

2022-01-12 18:12:02 757 21

原创 c++模拟实现string类

目录string类简介模拟实现成员变量成员函数构造函数拷贝构造赋值重载析构函数迭代器普通迭代器const迭代器重载运算符[ ]代码string类简介标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件。作为标准库的一部分,string定义在命名空间std中。模拟实现成员变量 char* _str; size_t _size; size_t _capacity; //不包含最后做标识的'\0' static const size_t npos;_s

2022-01-11 16:49:24 1859 13

原创 编辑距离(动态规划)

题目描述给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符编辑距离:是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。问题:word1到word2的编辑距离子问题:word1前i个字符到word2前j个字符的编辑距离假如有两个字符串"hat"和"wtct"每个格子表示word1前i个字符到word2前j个字符的编辑距离i表示插入操作,d表示删

2022-01-09 11:47:43 4808 19

原创 C++命名空间与缺省参数

目录命名空间为什么引入命名空间命名空间为什么引入命名空间在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。 int a = 10; int main(void) { int a = 10; return 0; }...

2021-09-29 14:35:06 568 24

原创 数据结构之单链表

目录简介简介线性表的顺序存储结构有一个缺点就是插入和删除时需要移动大量元素,这会耗费许多时间。能不能想办法解决呢?干脆所有的元素都不要考虑相邻位置了,哪有空位就到哪里,让每一个元素都知道它下一个元素的位置在哪里。线性表链式存储结构: 用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。...

2021-08-29 20:35:12 798 21

原创 数据结构之顺序表

一级目录线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序映像。通常,称这种存储结构的线性表为顺序表(Sequential List)。其特点是,逻辑上相邻的数据元素,其物理次序也是相邻的。...

2021-08-24 20:27:41 1673 24

原创 时间复杂度和空间复杂度

文章目录算法的复杂度时间复杂度算法的复杂度时间复杂度算法复杂度:算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢空间复杂度主要衡量一个算法运行所需要的额外空间...

2021-08-19 22:52:57 746 31

原创 C语言的位运算符和逻辑运算符

      位操作是程序设计中对位模式按位或二进制数的一元和二元操作,在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。按位取反:~'~'是一元运算符,用来对一个二进制数按位取反,把0变为1,把1变为0。如下例子所示。...

2021-05-13 16:39:52 1461 7

原创 c语言中的移位运算符

      移位运算符在程序设计中,是位操作运算符的一种。移位运算符可以在二进制的基础上对数字进行平移。c语言中提供了两种移位运算符:左移运算符:<<右移运算符:>>左移运算符(<<)int main(void){int a = 4;//将a的二进制位向左移动一位int b = a << 1;printf("%d", b);return 0;}  &n

2021-05-09 00:57:59 11462 12

原创 给自己定个小目标

## 给自己定个小目标本人就读于东北石油大学软件工程专业。目前大二了。以前很多不懂得知识都是通过在这里搜索得到解决,在此先感谢各位对我的帮助。以前大一的时候没有上进心,对于学习方面没努力。我相信有一部分人和我是一样的,因为高中的时候大家都说:“等你上了大学就好了”。当然,成绩不好的主要原因还是自己。有一句话这样说:实迷途其未远,觉今是而昨非。人总不能一直在安逸的生活中吧,身边的人都在进步,自己也有些坐不住了。于是我就想写了这篇博客,一是给自己定个小目标,督促自己努力。二是个人认为写博客是一个非常好的习

2021-04-01 06:53:55 1633 21

空空如也

空空如也

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

TA关注的人

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