自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 马拉车算法(C/C++)

是一种用于在字符串中查找最长回文子串的线性时间复杂度算法。该算法由Udi Manacher在1980年代提出,因此得名。它的核心思想是利用已知的回文信息来减少不必要的比较,从而提高效率。

2024-10-22 22:53:03 1368 21

原创 【机器学习】决策树算法

在机器学习领域,决策树算法是一种简单直观且易于理解的分类和回归方法。它通过学习数据特征和决策规则,构建一个树状模型来预测目标变量。本文将探讨决策树算法的基本原理、应用场景以及如何优化决策树模型。

2024-10-20 11:11:56 644 3

原创 人工智能【AI】:未来的驱动力

人工智能是计算机科学的一个分支,它试图理解智能的实质,并生产出一种新的能以人类智能相似方式做出反应的智能机器。这包括诸如语音识别、图像识别、自然语言处理和机器学习等领域。人工智能可以定义为使计算机系统执行通常需要人类智能的任务的技术,如视觉识别、语言理解、决策和学习。AI的历史可以追溯到20世纪40年代和50年代,当时计算机科学的先驱们首次提出了“思考机器”的概念。自那时以来,AI经历了多次起伏,包括几次“AI冬天”,在这些时期内,技术进步放缓,资金和兴趣减少。

2024-09-14 12:25:00 1269 5

原创 人工智能在C/C++中的应用

随着技术的飞速发展,人工智能(AI)已经成为我们日常生活中不可或缺的一部分。从智能手机的语音助手到自动驾驶汽车,AI的应用无处不在。在众多编程语言中,C和C++因其高性能和灵活性,成为实现复杂AI算法的理想选择。人工智能是计算机科学的一个分支,它试图理解智能的实质,并生产出一种新的能以人类智能相似方式做出反应的智能机器。人工智能的研究包括机器人、语言识别、图像识别、自然语言处理等多个领域。

2024-09-05 16:11:19 3188 16

原创 算法——线段树C/C++

首先,我们需要定义线段树的节点结构体,通常包含区间的起始和结束位置,以及该区间的汇总信息。// 假设存储的是和。

2024-09-03 20:17:44 2463 8

原创 树状数组C/C++实现

树状数组,也称为二叉索引树或Fenwick树,是一种用于处理数据序列的高效数据结构,特别适合于区间查询和更新操作。它通过构建一个类似二叉树的结构来减少查询和更新的时间复杂度,使得单点更新和区间查询的时间复杂度都降低到 O(\log n)。树状数组(Binary Indexed Tree,简称BIT或Fenwick Tree)是一种用于高效处理数据序列的算法数据结构。它能够支持两个主要操作:单点更新和区间求和,这两个操作的时间复杂度都能达到 O(\log n),其中 n 是数据序列的长度。

2024-09-01 18:16:28 1269 2

原创 手撕数据结构与算法——拓扑排序

拓扑排序是针对有向无环图(DAG)的一种排序算法,它将图中的所有顶点排成一个线性序列,使得对于任何一条有向边U→V,顶点U都在顶点V的前面。这样的排序不是唯一的,因为可能存在多个有效的拓扑排序。首先,我们需要定义一个图结构,包括顶点、边以及顶点的入度。int V;// 顶点数// 邻接表// 入度数组public:i < V;while (!q.pop();q.push(v);= V)else。

2024-08-30 15:53:48 952 4

转载 手撕数据结构与算法——弗洛伊德(Floyd)算法

弗洛伊德算法(Floyd's algorithm),又称为弗洛伊德-沃尔什算法(Floyd-Warshall algorithm),是一种用于在加权图中找到所有顶点对之间最短路径的算法。这个算法适用于有向图和无向图,并且可以处理负权重边,但不能处理负权重循环。弗洛伊德算法(Floyd-Warshall Algorithm)是一种用于计算图中所有顶点对之间最短路径的动态规划算法。本文将详细介绍弗洛伊德算法的原理,并提供一个C++实现的示例,以帮助读者理解算法的工作原理和编程技巧。

2024-08-29 17:29:00 356 2

原创 AI模型:追求全能还是专精?

近日,OpenAI预计在秋季推出代号为“草莓”的新AI。从专注于数学问题到处理主观营销策略,"草莓"模型展现出惊人的多样性。相比专攻于某一领域的专业型AI产品,全能型AI产品是否一定具有更广阔的经济市场、吸引更多用户喜爱呢?不妨分享你的观点,探讨这两类AI产品的优劣和未来潜力吧!AI模型的发展是一个不断进化的过程,它在追求全能和专精之间寻求平衡。全能型AI和专精型AI各有其优势和局限性,它们在不同的应用场景中展现出不同的价值。AI模型的合理使用和道德规范是确保技术进步同时维护社会价值和用户权益的关键。

2024-08-28 22:55:44 943 1

原创 莫队算法C/C++实现

在算法竞赛和某些计算密集型任务中,我们经常需要处理大量的区间查询和更新操作。传统的线段树或树状数组虽然能够处理这类问题,但在面对大量数据时,效率往往不尽如人意。莫队算法(Mo's Algorithm),由俄罗斯选手莫洛佐夫(Mo Morozov)提出,是一种高效的离线算法,特别适用于处理区间查询和更新问题。

2024-08-25 17:26:48 639

原创 A*算法C/C++实现

A*算法是一种在图形平面上,有多个节点的路径中,寻找一条从起始点(source)到目标点(goal)的最短遍历路径的算法。它属于启发式搜索算法,因为它使用启发式方法来计算图中的节点,从而减少实际计算的节点数量。,用于在图中找到从起始点(source)到目标点(goal)的最短路径。它属于最佳优先搜索算法的一种,使用启发式方法来估计从当前节点到目标节点的距离,以此来优化搜索过程。

2024-08-24 19:34:56 1389

原创 斐波那契数列的C/C++实现

斐波那契数列以递归的方式定义如下:- F(n) = F(n-1) + F(n-2) 对于 ( n >= 2 )

2024-08-23 14:24:16 1427

原创 贪心算法C/C++

maxActivities`函数实现了贪心算法的核心逻辑,它选择了一系列互不重叠的活动,使得选择的活动数量最多。贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望导致结果是全局最好或最优的算法策略。下面是一个简单的贪心算法示例,用于解决活动选择问题,即给定一系列活动,每个活动有开始和结束时间,选择最大数量的互不重叠的活动。然而,需要注意的是,并非所有问题都适合使用贪心算法。:用于解决带权重的单源最短路径问题,虽然它不是纯粹的贪心算法,但在没有负权边的情况下,它表现出贪心算法的特点。

2024-08-22 09:47:15 1238

原创 数据结构与算法——DFS与BFS

(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。它从一个节点开始,沿着尽可能深的分支进行搜索,直到达到目标或者不能再深入为止,然后回溯到上一个节点,继续搜索其他分支。1. 检查图是否连通或检查一个节点是否可达。2. 寻找一条从起点到终点的路径。3. 解决八皇后问题、图的遍历、拓扑排序等。DFS可以递归地实现,也可以使用形式。

2024-08-21 09:47:32 593

原创 搜索与回溯算法C/C++实现

搜索算法用于在数据结构中查找特定元素或满足特定条件的元素。常见的搜索算法有深度优先搜索(DFS)和广度优先搜索(BFS)。深度优先搜索(DFS):从根节点开始,尽可能深地搜索树的分支。当节点v的子节点都已被访问过,回退到发现节点v的那条边的起始节点。广度优先搜索(BFS):从根节点开始,逐层遍历节点,即先访问所有邻接节点,再访问邻接点的邻接点。回溯算法是一种通过试错的方式尝试分步解决问题的算法。它尝试分步去解决一个问题,如果某一步确定不会导致问题的解决,则放弃当前路径,回退到上一步,尝试另一种可能。

2024-08-20 13:05:58 382

原创 C/C++中实现网络流费用流

Edmonds-Karp算法:基于Ford-Fulkerson方法的改进,使用BFS寻找增广路径,时间复杂度为O(VE2)。Dinic算法:采用层次图(Level Graph)的概念,结合DFS寻找增广路径,时间复杂度可达O(V2E)。最小费用最大流算法:通常基于Bellman-Ford算法或SPFA(Shortest Path Faster Algorithm)来寻找最小费用路径,并结合最大流算法进行迭代求解。

2024-08-19 12:45:40 1244

原创 二分查找算法

二分查找算法,又称折半查找算法,是一种在有序数组中查找特定元素的搜索算法。它的效率远高于线性搜索,时间复杂度为O(log n)。

2024-08-18 10:49:24 525 1

原创 数据结构与算法:链表的C/C++实现

数据结构是计算机科学中的一个核心概念,它定义了数据的组织、管理和存储方式,以便可以高效地访问和修改数据。链表是一种基础的数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。链表可以是单向的,也可以是双向的,甚至可以是循环的。

2024-08-17 11:41:13 2481

原创 C/C++算法概述

1. 性能优势:C/C++语言以其接近硬件的特性而著称,提供了对底层硬件的直接控制能力。这意味着算法可以实现更高的执行效率,特别是在需要处理大量数据或实时性能要求较高的场景中。C/C++提供了丰富的数据结构和操作,允许开发者以灵活的方式实现复杂的算法。同时,C++的面向对象特性使得算法的模块化和重用变得更加容易。3. 跨平台兼容性:C/C++程序可以在多种操作系统和硬件平台上编译和运行,这使得算法实现具有很好的可移植性。4. 广泛的应用基础。

2024-08-16 14:27:30 1187

原创 程序员如何平衡日常编码工作与提升式学习?

记住,职业成功不仅仅是职位的提升或薪资的增加,还包括个人能力的提升、生活质量的改善和对社会的贡献。2. **编写清晰的注释**:为代码添加注释,说明代码的功能和逻辑,这不仅有助于他人理解,也方便未来的自己回顾。7. **代码审查**:定期进行代码审查,不仅可以发现潜在的错误,还可以学习他人的编码技巧。10. **持续学习**:技术不断更新,持续学习新的编程语言、框架和工具,保持自己的竞争力。9. **使用合适的工具**:选择合适的开发工具和IDE,它们可以提高编码效率和代码质量。

2024-08-15 14:43:53 1147

原创 红温刷算法题(C/C++)

此文章主要是给刷算法题的小萌新写的题解,博主每日刷题,把所刷的题以及所获都会发到博客里面,文章有详解思路,并且有对应的AC代码,希望我的博客对算法小萌新有所帮助。

2024-08-15 14:31:13 1354

空空如也

空空如也

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

TA关注的人

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