- 博客(17)
- 收藏
- 关注
原创 【Linux】零基础入门Linux你所需要掌握的
用户可以通过两种方式来指定权限设置:权限符号表示法和权限数字表示法。命令:即Linux程序,一个Linux命令就是一个Linux程序,命令没有图形化页面,可以在命令行提供字符化的反馈。要了解Linux首先,必须要了解linux的目录层级结构,因为在linux中有。为文件 ted 的所有者,所属组和其他用户设置读取和可执行权限(4+1=5),我们会看到当前的文件和目录,除此之后,我们也会看到一系列"奇怪"的字母。“x”:如果是文件就是代表文件可执行,如果是目录,则代表可切换目录。
2023-10-24 21:55:36 653 13
原创 深度分析c++引用的本质以及引用与指针的区别
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟另外的内存空间进行存储,它与引用的变量共用的是同一块内存空间的地址。格式如下:类型& 引用变量名(对象名) = 引用实体;而此处的不是取地址操作符,而是起标志作用,标志所定义的标识符是个引用.int a = 1;int& b = a;//此处就是引用的定义return 0;此处就相当于变量a,b共用同一块内存地址空间。
2023-10-16 21:55:49 636 16
原创 【排序算法】详解直接插入排序和希尔排序原理及其性能分析
希尔排序和直接插入排序直接有着很强的关联性,希尔排序就是直接插入排序的加强版,利用预排序进行优化,提高排序的效率.总的来说,直接插入排序适用于小规模或基本有序的元素,具有简单易懂的实现方法和稳定的排序性质;希尔排序适用于中大型规模的元素,通过预处理和分组插入排序的方式,提高了排序的效率。选择使用哪种算法取决于具体的需求和数据特征。
2023-10-15 16:13:30 971 10
原创 【排序算法】详解冒泡排序及其多种优化&稳定性分析
传统的冒泡排序完全可以满足我们最基本的需求,但是也仅仅是最简单的需求,这种简单的两个for循环不加任何的判断语句的形式注定它只能是一种效率较低的算法。虽然能有优化去完善算法,但是总体来说,冒泡排序的效率低.当然冒泡排序也有自身的优点,比如稳定!并且,冒泡排序适合教学,冒泡排序也是许许多多程序员接触的第一个排序算法,所以教学意义重大.
2023-10-14 22:01:34 2493 21
原创 【数据结构】长篇详解堆,堆的向上/向下调整算法,堆排序及TopK问题
😗:其实两种方式建堆之所以时间复杂度有差距,就是因为向下调整建堆可以看作忽略了最后一排的节点,直接从倒数第二排节点开始调整的,而在一棵满二叉树中最后一排的节点其实就占据了整棵树的二分之一,所以相当于向下调整比向上调整少经历了很多的节点所以实际堆排序中我们更多的使用的是。
2023-09-12 17:33:25 1357 22
原创 【数据结构】树的基础入门
相信大家刚学数据结构的时候最先接触的就是顺序表,栈,队列等线性结构.而树则是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合非线性体现在它是由n个有限结点(可以是零个结点)组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的一对多体现在比如对图中A来说,A对于和B,C都存在联系,同理B,C与其他的也均存在关系。
2023-09-08 17:23:15 1352 26
原创 C++的命名空间namespace详解及特殊情况分析
为了解决合作开发时的命名冲突问题,C++ 引入了命名空间Namespace的概念。当你要定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{ }即可,{ }中即为命名空间的成员//项目中成员分别以自己的名字定义了命名空间namespace zs//张三的变量定义int a = 1;namespace ls //李四的变量定义int a = 2;②嵌套定义int a = 0;int b = 0;③不同文件同名命名空间合并int a;int b;
2023-09-07 14:59:20 1280 11
原创 CS架构和BS架构的联系与区别(零基础理解)
. 就拿爱奇艺举例,客户端(也就是你的电脑)需要安装专用的客户端软件(爱奇艺).服务器(爱奇艺公司自己的机房)通常采用高性能的PC、工作站或小型机,并采用大型数据库系统来进行数据交互存储。而B/S架构就时那些在浏览器上面玩的游戏,往往都有一个特点,那就是画质特效背景音乐都比较烂,其根本原因就是在你本地电脑是没有这些图片音频资源的,需要。对于用户体验拿游戏举例是个很好的例子,C/S架构的用户体验在于比如游戏来说,画面清晰,延迟低,特效好,游戏体验感强,那是因为所有这些数据资源都。
2023-09-06 09:50:16 2586 11
原创 [C语言]关键字解析(一) auto, register, extern和static关键字
C语言一共多少个关键字呢?一般网上会说是32个,但是这个都是 C90(C89) 的标准。其实 C99 后又新增了5个关键字。不过,目前主流的编译器,对 C99 支持的并不好,我们后面默认情况使用 C90 ,即认为32个.这篇文章中我们不会讲解int,char,if,while等十分简单常见的关键字,而是讲解一些其他略微复杂的关键字。
2023-08-16 15:50:17 354 16
原创 递归以及斐波那契数列递归算法和迭代算法的实现与分析
综上,我们也可以通过斐波那契的例子看出递归算法的在效率上一般不是很高,而迭代在效率上要高于递归.但是递归相对而言代码要比迭代简单一点,代码的可读性较强递归运用较多的场景在于:1.当问题和子问题具有递推关系(阶乘)。1.具有递归性质的数据结构(链表、树)。因此递归函数也只是一种解决问题的技巧,它和其它技巧一样,也存在某些缺陷,具体来说就是:递归函数的时间开销和内存开销都非常大,甚至在极端情况下会导致程序崩溃(所以递归函数一定递了之后要归,不然最终会造成栈溢出。
2023-08-13 16:45:50 814 25
原创 轻松从内存角度深度理解++i与i++的本质区别(一看就懂)
这篇文章我将主要介绍++i和i++不同的一些底层逻辑不同,相信大家在网上也看到了不少资料都说明:++i是先自增+1,再使用(即再进行表达式运算);:最后想跟大家说的是,看到这些汇编代码,或许心中会与这样的疑问,为什么每次都要借助类似eax寄存器?由上述分析,我们就能很快的理解到为什么++i和i++会有+1的时间上的区别了。第三步mov指令:eax寄存器的值返回给a,此时已经是+1之后的值了。第二步:add指令:给eax的值+1(这一步也是与上面区分的关键)第一步mov指令:将变量a的值赋值给eax寄存器。
2023-07-21 00:55:11 1529 22
原创 数组名与地址,函数名与地址有啥关系 个人总结
比如在C语言中,一个函数占用一段连续的内存区,我们编写的程序,最终是不存在所谓的函数名的,有的只有内存单元地址如0xffeedd00.我们的程序执行时,程序加载到内存,比方说整个程序所占用的内存范围是0xffee0000 ~ 0xffeedd00。为一个指针,这里的退化就是上面提到的隐式转化。而sizeof和&这两种特殊情况让数组名成为了数组本身,其原因就是其背后并没有这种隐式转换,并且数组名作为函数形参时,在函数体内,其失去了本身的内涵,仅仅只是一个指针,在失去其内涵的同时,它还失去了其常量特性,
2023-07-06 22:16:02 448 11
原创 指针和指针变量有何不同,为何混而一谈(根本是左值右值的区别)
先看如下一段简单代码代码第二排x = 100是将100存进了x 的空间;y = x是将x的值存进了y两者都是x,一个使用了空间,一个使用了值所以我们能够得出x = 100;用的是x 的空间,变量的属性,int y = x;用的是x 的值,数据的属性,左值右值通过一个简单的整型变量,接下来我们来说一说指针变量首先一来先定义了两个变量p和q,首先p =&a ,a的地址赋给了p,其实内在含义是使用了p的空间,用的是,即,而之后q = p,是将变量p的值(也就是a的地址)赋给了q,用的是变量p的。
2023-07-06 16:25:31 127 6
原创 带你理解输入输出缓存区(超详解)
getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,_getch就立刻结束输入了,换言之,不需要将输入的字符保存在缓存区,也就是说,输入一个字符,它马上读取。这是因为_getch相当于无缓存的getchar(或者单个读取的sancf函数),程序运行到_getch函数将进入阻塞状态,并等待键盘直接输入一个字符,按下一个键后(不需要回车送入输入缓存区),getch函数就立刻能收到对应的字符(但是不会显示在控制台上),随后通过putchar打印在控制台。同理,计算机的缓存区也是运用了同样的思想。
2023-06-30 00:39:30 5191 16
原创 C语言中的%2d,%02d,%-2d的含义,以及解决99乘法表打印不对齐问题
同理: %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。:无论什么表示方法,我们定义的整数的位数大于我们想输出的数字的位数,输出时仍然是自己定义的数字。通过以上的例子我们可以解决一个大家在刚学习编程时就能遇到的一个问题,那就是。很多同学刚上来打印会出现的问题是,打印出的数据并没有对齐。不一样的是,当我们输出的数字位数不够时,3.%-2d,结果十进制,长度为2,,不够补空格,多了以实际长度输出。1.%2d,代表长度为2,,多了以实际长度输出,如。
2023-06-14 21:56:56 24997 19
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人