- 博客(71)
- 收藏
- 关注
原创 深入解剖Linux进程:从诞生到调度的核心机制
什么是进程?为何需要调度?本文以Linux为例,详解进程的创建、状态切换及优先级竞争,剖析O(1)调度器如何高效管理CPU资源,并探讨僵尸进程等经典问题,助你掌握操作系统核心概念。
2025-03-28 19:10:58
806
23
原创 开发者必备:深入Git版本控制与gdb调试技巧
本教程全面揭秘版本控制神器Git,从历史到安装,从GitHub/Gitee项目创建到日常操作三板斧:add, commit, push。深入gdb调试器,揭示watch、set var、条件断点等高级调试技巧。
2025-02-10 10:49:10
1438
30
原创 Linux 编程入门:打造你的首个动态进度条
快速了解Linux系统中的回车与换行机制、行缓冲区的工作原理,以及如何在Linux环境下实现倒计时和进度条代码。通过这些实用的编程技巧,您将能够更有效地与Linux命令行交互,提升您的开发效率。
2025-01-06 14:09:14
1884
39
原创 Makefile秘籍:打造高效编译流程
Makefile是编程中的魔法配方书,它告诉make如何一步步构建你的程序。简洁、强大,它让编译过程变得简单而高效,是开发者的得力助手。
2024-12-28 16:51:30
832
7
原创 模拟算法实例讲解:从理论到实践的编程之旅
本文简要介绍了几种模拟算法,包括替换问号、提莫攻击、Z字形变换、外观数列和数青蛙问题。每个算法都针对特定的问题,提供了详细的解决方案和应用场景。
2024-11-22 12:02:06
3065
66
原创 【Linux】深入理解GCC/G++编译流程及库文件管理
本文将带你走进GCC/G++的编译流程,揭示静态与动态库的奥秘,为你的编程之路打下坚实的基础。让我们开始吧!
2024-11-19 09:29:36
2690
60
原创 Linux软件包管理与Vim编辑器使用指南
本文旨在为Linux用户提供一个全面的指南,涵盖软件包管理器Yum和强大的文本编辑器Vim的使用和管理。文章提供了参考资料,以便读者可以进一步深入学习和探索。
2024-11-14 20:40:50
1462
51
原创 Linux权限解析:用户、组和权限的协同
初学者权限理解必看:Shell命令是Linux操作系统中的命令行工具,用于执行各种系统操作。Linux权限系统基于用户、组和其他人对文件和目录的访问控制。权限包括读、写和执行,用于保护系统资源。Linux权限管理涉及文件访问者分类、文件类型和权限、权限值表示方法以及chmod、chown、chgrp和umask等命令。目录权限、缺省权限和粘滞位是权限管理中的关键概念,确保系统安全性和数据保护。
2024-11-06 10:31:34
1781
60
原创 详解STL之 hash table — 超绝“常数平均时间”效率
哈希(hash)又称散列,是一种组织数据的方式。从译名来看,有散乱排列的意思。函数把关键字Key跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进行快速查找。hash table 可提供对任何有名项的存取操作和删除操作。由与操作对象是有名项。所以hash table也可被视为一种字典结构。这种结构的用意在于提供常数时间之基本操作,就像stack和queue那样。乍听之下这就是不可能完成的任务,因为制约条件如此少,而元素个数增加,搜寻操作必定耗费更多时间。
2024-10-27 20:03:39
1279
12
原创 详解STL之set和map --- 关联式容器的再封装
SGI-STL30版本源代码,map和set等几个头文件中。•通过下图对框架的分析,我们可以看到现key的搜索场景,还是key/value的搜索场景不是直接写死的,而是由第二个模板参数Value决定_rb_tree_node中存储的数据类型。•set实例化rb_tree时第而个模板参数给的是key,map实例化rb_tree时第二个模板参数给的是这样一颗红黑树既可以实现key搜索场景的set,也可以实key/value搜索场景的map。•要注意一下,
2024-10-25 15:58:03
1044
20
原创 详解STL之RBtree---关联式容器的底部机制值之用
c一定不是新增,c之前是黑色的,是在c的子树中插入,符合情况1,变色将c从黑色变成红色,更新上。如果p是g的右,c是p的左,那么先以p为旋转点进行右单旋,再以g为旋转点进行左单旋,再把c变黑。3. 如果一个结点是红色的,则它的两个孩子结点必须是黑色的,也就是说任意一条路径不会有连续的。当于保持g所在子树的黑色结点的数量不变,同时解决了c和p连续红色结点的问题,需要继续往上更新。如果g的父亲是黑色,则处理结束。c变成课这颗树新的根,这样子树黑色结点的数量不变,没有连续的红色结点了,且。
2024-10-19 20:22:04
803
11
原创 多态
多态是一个集成关系下的类对象,去调用同一函数,产生了不同的行为。比如Student继承Person。Person对象买票全价,Student对象优惠买票。
2024-09-24 17:55:02
865
24
原创 string详解(2)— 模拟实现
string类的模拟实现,浅拷贝和深拷贝,详细介绍String类实现的swap与算法库的swap的区别,简单了解vs和g++下string的结构。
2024-08-15 23:59:16
729
26
原创 C++内存管理
malloc/free和new/delete的共同点是:都是从堆上申请空间,并且需要用户手动释放。不同的地方是:1. malloc和free是函数,new和delete是操作符。2.malloc申请的空间不会初始化,new可以初始化。3. malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可,如果是多个对象,[]中指定对象个数即可。4. malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。5.
2024-07-22 12:53:37
843
20
原创 类与对象(中)
MyQueue没有实现构造函数而是调用Satck的默认构造。5. 像Date这样的类成员变量全是内置类型且没有指向什么资源,编译器自动生成的拷贝构造就可以完成需要的拷贝,所以不需要我们显示实现拷贝构造。像Stack这样的类,虽然也都是内置类型,但是_a指向了资源,编译器自动生成的拷贝构造完成的值拷贝/浅拷贝不符合我们的需求,所以需要我们自己实现深拷贝(对指向的资源也进行拷贝)。像MyQueue这样的类型内部主要是自定义类型Stack成员,编译器自动生成的拷贝构造会调用Stack的拷贝构造
2024-07-17 16:39:16
841
11
原创 C++入门基础
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。● namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不在冲突了。●C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找一个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响。
2024-07-12 01:08:10
1043
3
原创 非比较排序—计数排序/基数排序/桶排序
计数排序是一个稳定的排序算法。当输入的元素是n个范围为range的整数时,时间复杂度是O(N + range),空间复杂度也是O(N + range),其排序速度快要任何比较排序算法。当range不是很大,并且序列比较集中时,计数排序是一个很有效的排序算法。
2024-07-05 18:24:29
953
5
原创 一篇文章带你彻底搞懂十大经典排序之——快速排序
快速排序是一种高效的排序算法,通过选择枢轴元素并递归地将数据分为两部分实现排序。它有多种实现方式,包括Hoare法、挖坑法和非递归实现,同时可以通过优化策略提高性能。
2024-06-27 21:07:05
850
2
原创 十大经典排序算法——插入排序与希尔排序(超详解)
(1)元素集合越接近有序,直接插入排序算法的时间效率越高(2)时间复杂度:O((3)空间复杂度:O(1),是一种稳定的排序算法(4)稳定性:稳定(1)希尔排序是对直接插入排序的优化(2)当gap > 1时都是预排序,目的是让数组更接近与有序。当gap == 1时,数组已经接近有序了,这样就会很快。对整体而言,可以达到优化的效果。(3)希尔排序的时间复杂度不好计算,因为gap的取值方式有很多种,导致难以计算。大约是在O()左右。(4)稳定性:不稳定。
2024-06-22 21:24:43
1063
1
原创 二叉树链式结构的实现
数组中最后一层数据是连续存放的(可以不存满),空节点和非空节点是连续的(如果后面全空就是完全二叉树,后面有非空就不是完全二叉树)。
2024-06-02 16:06:43
1023
1
原创 二叉树—堆(C语言实现)
树是一种非线性的数据结构,它是有n(n > 0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下。树结构相对线性表就比较复杂,要存储表示起来就比较麻烦,既然保存值域,也要保存结点和结点之间的关系,实际上数有很多表示方式比如:双亲表示法,孩子表示法,孩子双亲表示法以及孩子兄弟表示法等。我们这里就简单的理解其中最常用的孩子兄弟表示法。二、二叉树的概念及结构1.概念由上图可知: 注意:对于任意的二叉树都是有以下几种情况符合而成的:(1)满
2024-05-29 16:46:09
1148
10
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人