自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux——my bash

【代码】Linux——my bash。

2024-04-10 21:48:40 662

原创 Linux——fork复制进程

fork产生的这个子进程不是从头开始执行的,而是从fork之后开始执行的,就是说fork下面的代码子进程才开始执行,具体的是说从返回值这里子进程开始执行,子进程不会再fork了,所以不会出现子进程再去fork产生一个子进程的问题. 也就是说:从返回值这里开始,父进程返回子进程的PID,子进程返回0;fork是把已有的进程复制一份,当然把PCB也复制了一份,然后申请一个PID,子进程的PID=父进程的PID+1;父子进程是两个独立的进程,各自执行各自的代码;getppid:得到一个进程的父进程的PID;

2024-04-10 21:35:59 465

原创 Linux——prinf隐藏的缓冲区

3.强制刷新 (1)方法一:遇到\n自动刷新 printf("hello\n");(2)使用fflush刷新屏幕 fflush(stdout);我们运行的之后直接就打印了hello,好像没有感觉到缓冲区 的存在;原因是因为此时程序已经结束了,它会刷新缓冲区的内容;1).演示缓存区没有存在感 那为什么我们感觉不到缓冲区的存在呢?我们要打印东西直接就打印了呢?exit是先刷新缓冲区,然后再调用_exit(真正的退出);_exit直接退出,不会刷新缓冲区;1.思考:为什么会有缓冲区的存在?2)演示缓冲区的存在。

2024-04-09 14:21:34 454

原创 常见的八大排序总结

不同点:希尔排序的时间复杂度取决于间隔序列的选择,通常为O(n^2)到O(n^(3/2))之间,性能较插入排序有所提升,但仍然不适用于大规模数据。- 特点:希尔排序是插入排序的一种改进版本,通过比较距离较远的元素进行交换,从而使得数组中的元素能够快速归位,最终达到基本有序的状态。- 特点:采用分治的策略,将列表分成较小的子列表,分别对子列表进行排序,然后合并已排序的子列表以产生最终的排序结果。- 特点:通过重复遍历要排序的列表,比较每对相邻的元素,并依次交换顺序,直到没有需要交换的元素为止。

2024-04-08 23:06:06 632

原创 Mysql 常用关键字总结

18. FOREIGN KEY:用于定义外键,建立表与表之间的关联。8. WHERE:用于在查询中指定条件,筛选出符合条件的数据。12. HAVING:用于在GROUP BY后对结果进行筛选。10. GROUP BY:用于按照指定的列对结果进行分组。11. ORDER BY:用于按照指定的列对结果进行排序。13. DISTINCT:用于返回唯一不重复的结果集。5. CREATE:用于创建新的数据库、表或视图。3. UPDATE:用于更新数据库中的现有数据。2. INSERT:用于向数据库中插入新的行。

2024-04-08 22:59:47 1734

原创 Linux——库相关面试题

(2)共享库如果10个应用程序共享,那么磁盘上只有一份共享的库文件,而且运行加载时在内存中只加载了标记了的这一份库文件;而静态库,就是这10个应用程序都包含了这个库文件,那么10份的库文件都放在磁盘上了(占用磁盘空间),而且运行加载的时候占用内存空间(10份库文件都要加载);3)静态库的使用:gcc -o main main.c -L. -lxxx (其中:-L:指定库的存储位置 -l:指定库的名称(不需要前面的lib和扩展名.a) )1)先将需要生成库文件的所有.c文件编译成.o文件;

2024-04-08 22:16:46 449

原创 Linux——计算机进程基础知识

RISC技术是用20%的简单指令的组合来实现不常用的80%的那些指令功能,但这不意味着RISC技术就是简单地精简其指令集.在提高性能方面,RISC技术还采取了许多有效措施,最有效地方法就是减少执行地执行周期数. (6) CISC :复杂指令系统计算机。(Complex Instruction Set Computer) (考点) (计算机组成原理332页:关于精简指令系统计算机,复杂指令计算机) (7) 程序与指令: 高级语言 汇编助记符 机器指令。(1) 指令 : 是指示计算机执行某种操作的命令。

2024-04-08 22:13:49 908

原创 Linux——静态库 共享库

(1)将所有的.c文件编译成目标文件.o (2)将所有目标文件打包生成共享库: gcc -shared -fPIC -o libxxx.so xxx.o xxx.o (3)共享库的使用: gcc -o main main.c -L路径 -l库名。(2)静态库的使用 gcc -o main main.c -L. -lxxx -L:指定库的存储位置 -l:指定库的名称(不需要前面的lib和扩展名.a)2).库的分类 静态库:libxxx.a(命名规则) 共享库:libxxx.so(命名规则)

2024-04-07 20:35:03 561

原创 Linux——用户管理,文件压缩命令

原理是 attach 在正运行的进程使其停止,然后读取进程的指令寄存器内容所指向的指令,备份后替换成目标指令,再使其继续执行,此时被追踪进程就会执行我们替换的指令,运行完成注入的指令后,再恢复原进程的指令寄存器的值, 从而达到改变运行原程序逻辑的目的。2gcc 可以编译.c 和.cpp 的源文件对.c 按 c 语言语法规则处理, .cpp 自动按 c语法规则处理,但默认不链接相应的 c库,需要手动指定链接的库名"-lstdc++"3g可以编译.c 和.cpp 的源文件,但是都按 c的语法规则来处理。

2024-04-07 20:30:01 557

原创 Linux——进程管理

进程:运行中的程序,也就是说,程序是存储在磁盘上的二进制可执行文件,而进程是内存上的,是运行中的程序(过程);操作系统对于进程的描述:PCB(进程控制块,进程描述符),记录一个进程执行过程中的相关的属性数据;PID是操作系统对进程的标识,每一个进程的PID都是不同的(唯一性);为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。进程:运行中的程序(过程,动态)

2024-04-06 20:28:21 651

原创 Linux——makefile安装及make

总结: makefile可以提高编译效率,使用make命令每次都只会编译那些修改了的或者依赖修改了的文件(间接修改),没有修改的文件不会重新编译;makefile文件:Linux上的工程管理工具,可以实现自动化编译;工程中的源文件不计其数,可以根据模块,功能等存储在不同的目录中;注意:顶格与tab键 了解makefile文件的生成规则;VS底层就有自己的makefile文件;makefile可以。

2024-04-06 19:08:40 296

原创 Linux——gdb

在编译阶段会加入某些调试信息;调试信息是在编译的过程中加入到中间文件.o文件的;gcc -c main.c -g:生成包含调试信息的中间文件 gcc -o main main.o 一步执行:gcc -o main main.c -g (1)

2024-04-05 22:35:25 700

原创 Linux——gcc

路径+可执行文件名 或者 路径+可执行文件名 & (将进程放到后台执行);可以把可执行文件放到 /usr/bin 就可以省略路径了;思考:为什么?ps :/usr/bin ps,ls,pwd (先了解,后期写项目就知道为什么了。

2024-04-05 22:28:52 341

原创 Linux——编译链接和gcc

参考书目及拓展:程序员的自我修养 2.1章 37页(1)预编译阶段a)删除所有的"#define",并且展开所有的宏定义;b)处理所有的条件预编译指令,"#if","#ifdef","#endif"等;c)处理"#include"预编译指令,将被包含的文件插入到该预编译指令的位置;d)删除所有的注释;e)添加行号和文件名标识,以便于编译器产生调试用的符号信息及编译时产生编译错 误和警告时显示行号;f)保留所有的#pragma编译器指令,因为编译器需要使用它们;

2024-04-04 21:55:47 598

原创 Linux——文件查看命令 文件编辑命令

n,m s/oldstring/newstring 替换从n行到m行的第一个oldstring(比如一行出现多个,那么只替换每一行的第一个):n,m s/oldstring/newstring/g 替换从n行到m行的所有oldstring。j:向下移动光标k:向上移动光标;(ls -a看看是否有此隐藏的交换文件)1)查看文件内容(内容较少时使用):cat 文件名。3)往文件中写入数据,(Ctrl+d结束输入);d n shift +g:删除光标到n行的内容;y n shift+g:拷贝光标到n行的内容;

2024-04-04 21:51:44 1435

原创 Linux——基础命令

i 不区分大小写(例如:grep -i "hello" file.txt) 不写就是区分大小写。(5)touch:创建普通文件(不存在则创建,存在则修改文件的属性信息:最后的修改时间)-c:统计满足要求的有几行(grep -c "hello" file.txt).拷贝目录文件的语法:cp -r 源文件路径+文件名 目的路径(需要加-r)find 搜索路径 -cmin -n(搜索过去n分钟内修改的文件);(ls -s ls -ls)移动目录文件(不需要-r):mv 源文件的路径+文件名 目的路径。

2024-04-02 23:01:19 541 1

原创 Linux——系统介绍及文件类型和权限

开机,关机什么是终端?主机名的意义?(连接数据库的电脑,Web服务器等,连的太多分不清楚)终端:Ctrl+Alt+T 或者桌面/文件夹右键,打开终端切换为管理员:sudo su 退出:exit查看内核版本号:uname -a内核版本号含义:5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新.

2024-04-02 23:00:04 1246 1

原创 八大排序——基数排序

基数排序俗称桶排序,它是一种低位优先的算法;就是所有的数据依次进桶,出桶,循环count次,而count为最大值的位数.

2024-04-01 20:10:12 213

原创 八大排序——归并排序

也就是说把两段有序的归并为一段更大的更有序的数据,也称为2路归并;将两段有序的数据合并成一端有序的数据,直到所有的数据有序;注意:归并排序是所有比较快的排序里面唯一一个稳定的算法;O(nlogn),O(n),稳定;

2024-04-01 20:07:50 197

原创 八大排序——堆排序

数据结构C语言版》书上136页,性质4:具有n个节点的完全二叉树的深度为logn+1 (向下取整)所有的树都可以转成二叉树,所有的森林都可以转成树(如何转后面讲树会详细介绍).所以二叉树很重要;每次将根和待排序的最后一个交换,然后再调整,循环len-1次即可;注意,书上下标是从1开始的,那么父子下标之间的关系就不是这样的;时间复杂度:O(nlogn),系数大,空间复杂度O(1),不稳定。二叉树:左孩子,右孩子,最多只有两个孩子的就是二叉树;思考,为什么这样调整,就能调整成一个大根堆?

2024-03-27 15:38:55 426

原创 八大排序——选择排序

每次都从待排序中选出最小的一个和待排序的第一个数据交换。快速排序如果完全有序就会退化为选择排序。O(n^2),O(1),不稳定。

2024-03-27 15:07:20 89

原创 八大排序——快速排序

缺点:不稳定,空间复杂度大 快速排序最大的缺点:越有序越慢;完全有序时间复杂度为O(n^2)这就是快速排序的一次划分,之后运用递归多次调用一次划分,直到完全有序。快速排序如果越有序越慢,完全有序退化成选择排序。O(nlogn),O(logn),不稳定。1)从后往前找比基准小的数据往前移动,2)从前往后找比基准大的数据往后移动。3)重复1)和2)直到找到基准位置。找一个基准(第一个数据)

2024-03-27 14:42:29 185

原创 八大排序——冒泡排序

举例 10 9 8 7 6 5 4 3 2 1(冒泡排序升序)冒泡排序:两两比较,大的往后走。

2024-03-27 14:14:22 131

原创 八大排序——希尔排序

3.希尔排序利用了gap越大,挪动数据的距离越大,效率更高;gap越小,挪动的距离越小,前面让gap较大,可以让数据更快的挪动到自己对应的位置附近,减少挪动次数,让数据部分有序,利用直接插入排序越有序越快的特性。1.先预排序:取一个小于N的整数gap作为第一次增量,然后将距离gap的元素放入一组,再对每一组进行直接插入排序。希尔排序的算法思想:间隔式分组,利用直接插入排序让组内有序,然后缩小分组再次排序,直到组数为1。2,直接插入排序:越有序越快。2.再直接插入排序:当gap缩小为1时,进行直接插入排序。

2024-03-27 13:57:13 256

原创 八大排序——插入排序

插入排序中,当待排序数组是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较 N-1 次,时间复杂度为 O(N)。最坏的情况是待排序数组是逆序的,此时需要比较次数最多,最坏的情况是 O(n^2)。插入排序(简单插入排序或者直接插入排序) 直接插入的算法思想: 从当前位置开始, 从后往前找比当前数字小的, 找到后插入到这个小的数字后面;插入排序的平均时间复杂度也是 O(n^2),空间复杂度为常数阶 O(1),具体时间复杂度和数组的有序性也是有关联的。

2024-03-27 13:44:44 196

原创 拷贝构造类

需要注意,如果没有显式定义拷贝构造函数,C++编译器会自动生成一个默认的拷贝构造函数。这个函数按值复制每个成员变量,并将参数对象的值赋给新对象的成员变量。如果类中有指针成员变量,则默认的拷贝构造函数只是复制指针的值,新对象和旧对象将共享同一个内存地址,可能导致内存泄漏或者非法访问问题。因此,在包含指针成员变量的类中,建议显式定义拷贝构造函数来完成深度复制。拷贝构造函数是一种特殊的构造函数,用于在创建一个对象时,以另一个同类对象作为初始化值来创建新对象。对象的副本来初始化新对象,此时会调用拷贝构造函数。

2024-01-16 23:00:08 406 1

原创 C++ 类

传值适用于简单的数据类型或需要保护实参的情况。引用传递适用于需要修改实参的值或减少内存开销的情况。析构函数(Destructor)也是一种特殊的成员函数,与类名相同但前面加上波浪号(~)。构造函数(Constructor)是一种特殊的成员函数,与类名相同且没有返回类型。在C++中,函数的参数传递方式有三种:传值(by value)、引用传递(by reference)和指针传递(by pointer)。需要注意的是,在传递大型对象时,传值会导致数据的复制,引起性能问题,此时应使用引用传递或指针传递。

2024-01-15 23:08:12 338

原创 C++11左右值引用

所谓的左值一般是指一个指向特定内存具有名称的值(具名对象),它有一个相对稳定内存地址,并且有用一段较长的生命周期。而右值则是不指向稳定内存地址匿名值(不具名对象),它的生命周期很短,通常都是暂时性的。通常的所说左值和右值的判断方法。

2024-01-14 16:12:27 367 1

原创 初识Linux

开机,关机什么是终端?主机名的意义?(连接数据库的电脑,Web服务器等,连的太多分不清楚)终端:Ctrl+Alt+T 或者桌面/文件夹右键,打开终端切换为管理员:sudo su 退出:exit查看内核版本号:uname -a内核版本号含义:5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新.

2023-10-22 11:31:36 79 1

原创 一维数组前缀和

方法一:我们定义一个数组来储存前缀和,Sum[0]=num[0],后面。解释:前缀和计算过程为。解释:前缀和计算过程为。

2023-06-04 23:07:07 95 2

原创 八皇后(c语言极简版)

皇后与皇后不会再同一行上,不会在直角线上(成45°或135°)(定义的一维数组已经保证每一行只会有一个皇后)。所以我们在每摆放一个新的皇后时都要与前面的皇后进行if语句的判断。我们先摆放第一个皇后,再摆放第二个皇后的时候需要考虑。统计所有皇后能存放的位置和总数。任意两个皇后不能 在同一列,同理继续判断,完整代码如下。任意两个皇后不能在同一行。每一行一定有一个皇后。

2023-06-03 16:07:11 145

原创 穷举法的应用(c语言版)

已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。另外如果学习了动态规划算法,也可以轻松写出该种问题,我们将在后面进行讲述,并学习。两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。假定对于所有面值的硬币你都有足够的硬币。当两种钱币和超过时,跳出循环,不再进行用break。货币组合问题是应用的最常见的方法就是穷举法。这里我们直接使用暴力枚举法。在一个陌生的国度,有。

2023-06-03 15:57:28 290

原创 统计字符数组中各类字符的次数,并输出

对于给定的字符数组 char str[100] = {"109238475629020349ejlqjwlrqusfwkjrop345678<>jlsjf029384756"};(3)对各个数字按照降序序列输出数字及出现次数。(1)统计阿拉伯数字数字0-9出现的次数。(2)并对数字出现的次数进行降序排序。

2023-06-01 22:39:25 500

原创 .假设在n进制下,下面的等式成立,567*456=150216,n的值是()。

进制换算

2023-06-01 22:39:18 159

原创 C语言关于统计数字位数,并顺序和逆序输出

c语言回顾 001 统计数字位数,并顺序逆序输出各位数字

2023-05-31 00:31:30 1197 2

空空如也

空空如也

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

TA关注的人

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