- 博客(30)
- 收藏
- 关注
原创 Linux开发工具
我们为什么能在Windows/Linux上进行C/C++/其他形式开发,我们系统中一定要提前或后续安装C/C++开发相关的头文件和库文件。C/C++开发环境不仅仅指的是vs,gcc,g++,更重要的是语言本身的头文件和库文件。安装vs等时,在安装的时候,选择对应的开发包时,同步也在下载C/C++的头文件和库文件。
2025-03-14 21:33:23
1062
原创 C/C++ 内存管理
栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。 用户可使用系统接口创建共享内存,做进程间通信。(linux)
2025-03-14 21:32:29
736
原创 C++ 入门
C++是基于C语言产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。
2025-03-05 11:49:52
951
原创 C++优选算法十六 BFS解决最短路问题
BFS能够逐层遍历图中的所有节点,直到找到目标节点或遍历完所有可达节点。对于无权图(即边权为1的图)或边权相等的图,BFS能够找到从起点到目标节点的最短路径。
2024-11-30 00:15:00
712
原创 动态规划-斐波那契数列模型
动态规划的基本步骤定义状态表示:dp表里面的值表示的含义。状态转移方程:我们需要找到一种方式,根据子问题的解来构造出整个问题的解。这通常是通过一个或多个状态转移方程来实现的。初始化:保证填表的时候不发生越界。填表顺序:保证填表顺序正确,填写当前状态时,需要的状态已经计算过了。返回值:确定正确的返回值。
2024-11-28 17:06:08
1050
原创 C++优选算法十五 BFS解决Flood Fill算法
BFS算法,即广度优先搜索算法(Breadth-First Search),是一种用于图的遍历或搜索树的算法。
2024-11-26 01:45:00
990
原创 C++优选算法十四 优先级队列(堆)
C++ 中的优先级队列(Priority Queue)是一种容器适配器,它提供队列的功能,但元素不是按照插入的顺序被访问,而是根据它们的优先级被访问。
2024-11-22 17:57:38
1162
原创 C++优选算法十三 队列+宽搜BFS
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。层序遍历即可~仅需多加一个变量,用来记录每一层结点的个数就好了。
2024-11-22 01:45:00
1661
1
原创 C++优选算法十二 栈
在C++中,stack是一种标准模板库(STL)容器适配器,它提供了后进先出(LIFO, Last In First Out)的数据结构。stack适配器基于其他底层容器(如deque或vector)来实现,但只提供有限的接口来访问这些容器中的元素。
2024-11-09 17:45:50
807
原创 C++优选算法十 哈希表
unordered_map是一个关联容器,它存储键值对,并且使用哈希表来组织数据。因此,它提供了快速的查找、插入和删除操作,平均时间复杂度为 O(1)。
2024-11-07 18:58:41
1337
原创 回溯算法
回溯算法是一种经典的递归算法,通常用于解决组合问题、排列问题和搜索问题等。回溯算法的基本思想:从一个初始状态开始,按照一定的规则向前搜索,当搜索到某个状态无法前进时,回退到前一个状态,再按照其他的规则搜索。回溯算法在搜索过程中维护一个状态树,通过遍历状态树来实现对所有可能解的搜索。回溯算法的核心思想:“试错”,即在搜索过程中不断地做出选择,如果选择正确,则继续向前搜索;否则,回退到上一个状态,重新做出选择。回溯算法通常用于解决具有多个解,且每个解都需要搜索才能找到的问题。
2024-11-06 19:28:07
915
原创 二叉树中的深搜
深度优先遍历(DFS,全称为 Depth First Traversal),是我们树或者图这样的数据结构中常用的一种遍历算法。这个算法会尽可能深的搜索树或者图的分支,直到一条路径上的所有节点都被遍历完毕,然后再回溯到上一层,继续找一条路遍历。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。并,在做题的时候,选择一个适当的遍历顺序,对于算法的理解是非常有帮助的。
2024-11-06 00:15:00
1109
原创 递归算法
在解决一个规模为n的问题时,如果满足以条件,我们可以使用递归来解决:问题可以被划分为规模更小的子问题并且这些子问题具有与原问题相同的解决方法。当我们知道规模更小的子问题(规模为n-1)的解时,我们可以直接计算出规模为 n的问题。存在一种简单情况,或者说当问题的规模足够小时,我们可以直接求解问题(也就是递归的出口)。
2024-11-05 00:09:11
861
原创 C++优选算法八 分治-归并
归并思想是分治法中的一种重要体现,它主要用于解决排序问题,如归并排序。归并排序的基本思路是将两个有序序列“合并”成一个新的有序序列。具体来说,就是先将待排序的数组递归地分成两个子数组,分别对这两个子数组进行排序,然后将排序好的两个子数组合并成一个有序数组。
2024-11-02 21:46:15
1040
原创 C++优选算法六 模拟
模拟算法是一种基本的算法思想.1、定义模拟算法是指根据题目提供的信息,将该题目的解决过程模拟出来,从而得到最终的结果。这种算法不能称为特定的模板,它需要根据题目的具体要求进行编程模拟。2、特点。
2024-11-01 21:05:57
1074
原创 C++优选算法五 位运算
位运算(Bitwise Operations)是直接在整数的二进制表示上进行的操作。这些操作包括位与(AND)、位或(OR)、位非(NOT)、位异或(XOR)、左移(Left Shift)和右移(Right Shift)等。位运算在处理低级别数据、优化性能、实现加密算法等方面非常有用。
2024-11-01 20:08:31
991
原创 C++优选算法四 前缀和
定义:前缀和是指数组中某个位置之前(包括该位置)所有元素的和。前缀和算法则是通过提前计算并存储这些前缀和,以便在后续查询中可以快速获取任意区间的和。原理:该算法基于一个简单但强大的思想,即通过一次遍历数组,计算出每个位置的前缀和,并将其保存在一个额外的数组中。这样,在查询时,只需要简单地减去两个前缀和即可得到所需子数组的和。
2024-11-01 19:38:15
1292
原创 C++优选算法三 二分算法
二分查找算法(Binary Search Algorithm)是一种在有序数组中查找某一特定元素的搜索算法。相比于线性查找(即逐一检查每个元素),二分查找通过每次将查找范围缩小一半,从而大大提高了查找效率。它的时间复杂度为 O(logn),其中 n 是数组的大小。
2024-10-30 21:41:55
897
原创 C++优选算法二 滑动窗口
滑动窗口(Sliding Window)是一种用于管理和处理数据流的技术,它通过在数据流上定义一个窗口,该窗口可以固定大小或根据特定条件动态调整,从而实现高效的数据处理、传输控制和资源管理。
2024-10-30 19:45:14
745
原创 深度刨析数据在内存中的储存
我们熟知的数据类型有很多:char:字符型short:短整型int:整型long:长整型long long:更长的整型float:单精度浮点型double:双精度浮点型数据类型的意义:1.类型决定开辟空间内存的大小。2.看待内存的视角不同。什么大端小端:大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中;为什么有大端和小端:为什么会有大小端模式之分呢?
2023-01-13 00:18:47
182
14
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人