自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 竞赛中的C++阅读程序类题目:全面解析与实战技巧

本文系统解析了竞赛中C++阅读程序类题目的特点和解题技巧。文章首先强调这类题目在信息学竞赛中的重要性,指出其占分比例高且能检验代码理解能力。然后从基础知识、数据结构与算法两个维度展开,详细讲解C++语法要点、指针、递归、STL等核心概念,以及数组、链表、树等常见数据结构。针对题型特点,文章总结出判断题、选择题和完善程序题三大类,并分析其知识分布和难度梯度。最后提出有效的解题策略,包括快速理解代码结构、变量跟踪和测试用例分析等实用技巧,帮助竞赛选手提升解题能力。

2025-08-09 09:47:39 1096

原创 线段树:C++算法中的“区间管理大师”,教你如何高效“分家”!(附超详细图解+实战代码)

本文用生动幽默的语言介绍了C++算法中的线段树(Segment Tree)数据结构。文章将线段树比喻为"区间管理大师",通过"分家产"的接地气比喻,解释了线段树如何高效处理区间查询问题。主要内容包括:线段树的基本概念及其相比普通数组在查询效率上的优势(O(logn) vs O(n));线段树的结构特点,用完全二叉树实现,需要4倍空间;支持的各种区间操作(求和、最值等);手把手演示建树和查询操作的实现过程,并附有带注释的C++代码示例。文章通过快递分拣、切蛋糕等生活化类

2025-08-02 18:52:34 673

原创 生成树算法:C++里的“修路大王”,让你的代码不绕路!

摘要:生成树算法——C++中的“修路大王” 本文用幽默生动的语言讲解了最小生成树(MST)算法在C++中的应用。通过生活化类比(如WiFi断网、快递绕路等),阐释了生成树的核心概念:在连通图中选择总权重最小的n-1条边连接所有节点且不形成环路。重点对比了Prim算法(贪心选择最近节点)和Kruskal算法(按权重排序选边)的实现思路,并提供了带有详细注释的C++代码示例(如优先队列的使用)。文章还澄清了常见误区(如MST与最短路径的区别),指出其在网络设计、电路布线等场景的实际价值,让读者在轻松氛围中掌握这

2025-08-02 18:04:24 914

原创 从零搞懂MySQL索引:B+树原来是这么回事!连隔壁王大爷都能看懂的实战指南

矮胖身材+叶子链表+有序存储索引优化本质是减少硬盘IO,一切围绕这个目标实战中要先诊断再优化,别上来就改索引最后送大家一句我在MySQL源码里看到的注释:(索引就像路标——太少会迷路,太多反而更困惑)赶紧去检查你的SQL,说不定就藏着个能优化100倍的查询!写完记得加标签 #技术栈深潜计划,咱们评论区见真章!附:自查小测验为什么B+树比B树更适合数据库?WHERE name LIKE '%张%'为什么走不了索引?覆盖索引为什么能避免回表?(答案在文中找,评论区晒答案有惊喜🎁)

2025-08-01 17:43:47 497

原创 Floyd算法:图中找路的“老司机”,C++实现不迷路!(附超详细解析+骚操作指南)

三重循环盘所有”:k在外层,i、j遍历,用k优化i→j路径。“INF安全是王道”:别用INT_MAX,0x3f3f3f3f保平安。“负权环要检查”:算完看dist[i][i] < 0?有就GG。

2025-08-01 17:15:28 715

原创 动态规划:C++算法界的“记忆超人”,让你的代码从“递归到死”到“秒出答案”!

状态(State)就是描述问题当前情况的变量。“状态越少越好,能少写一个变量就少写一个!案例:爬楼梯问题(经典入门题)题目:每次能爬1阶或2阶,爬n阶楼梯有几种方法?错误状态dp[i][j]表示爬到第i阶、上一步走了j阶的方法数 → 变量太多,自己都绕晕!正确状态dp[i]表示爬到第i阶的方法数 →简单粗暴!为什么?因为到第i阶只取决于前两阶(i-1和i-2),和之前怎么爬无关(马尔可夫性)。案例:最长递增子序列(LIS)dp[i]= 以i结尾的LIS长度 → 正确dp[i]

2025-08-01 16:20:37 1047

原创 C++单调队列:让算法效率“单调”飙升的秘密武器

单调队列(Monotonic Queue):一种用双端队列(std::deque)实现的特殊数据结构,核心特点是队列中的元素始终保持单调递增或单调递减顺序。单调递减队列单调递增队列关键特性✅只维护“有用”的元素:比如求最大值时,比当前元素小的“弱鸡”会被无情踢出队伍(pop_back()✅O(1)时间获取极值:队头永远是当前窗口的最大/最小值,不用遍历!✅O(n)时间处理整个数组:每个元素最多入队出队1次,摊还时间超高效。“只留精英,淘汰炮灰;队头即王,O(1)称霸!

2025-08-01 15:48:41 905

原创 优先队列:C++里的“急诊室队长”,搞定任务优先级就靠它!(附Luogu实战秘籍)

C++优先队列实战指南:从急诊室比喻到刷题实战 摘要(150字): 本文深入浅出讲解C++优先队列(priority_queue)的核心用法与底层原理。通过急诊室分诊、快递分拣等生活化比喻,解析优先队列"智能排队"的特性:默认最大堆实现、自定义比较函数、结构体重载运算符等关键技巧。文章结合Luogu刷题实例,演示优先队列在解决TopK问题、任务调度等场景的实际应用,并剖析其O(log n)时间复杂度的堆实现原理(上浮/下沉操作)。最后提供典型题目代码模板,帮助读者快速掌握这一重要数据结构

2025-08-01 15:21:37 620

原创 深入浅出C++中的BFS与DFS:从迷宫探险到代码实战,万字长文带你彻底搞懂!

本文深入浅出地讲解了C++中广度优先搜索(BFS)和深度优先搜索(DFS)的核心原理与实现。文章从迷宫游戏的类比入手,生动形象地解释了两种算法的本质区别:DFS是"一条路走到黑"的递归式搜索,而BFS是"分身撒网"的层次遍历。通过邻接表构建图结构,详细展示了递归版和迭代版DFS的实现代码,并分析了时间复杂度和空间复杂度。本文还特别强调了DFS通过栈实现回退机制的特点,以及实际应用中需要注意的倒序入栈等编程技巧。全文采用大量生活化比喻和代码示例,帮助读者真正理解这两种基

2025-08-01 14:55:53 1014

原创 暴力YYDS(C++竞赛中的暴力解法:朴实无华但不可或缺的利器 )

C++竞赛暴力解法精要 暴力解法通过穷举所有可能解决问题,是竞赛中的基础策略。适用于小数据范围(n≤20)、部分分获取及算法验证。核心方法包括: 枚举法 - 多层循环遍历组合(如两数之和O(n²)解法) 搜索算法 - DFS用于全排列/回溯,BFS处理最短路径 位运算 - 状态压缩高效枚举子集(n≤20时性能佳) 模拟题 - 严格按题意分步实现 优化技巧:剪枝提前终止无效分支、前缀和减少重复计算、双指针降复杂度、打表预处理空间换时间。竞赛中建议先写暴力保底,再逐步优化,配合对拍验证正确性。典型场景包括子集和

2025-08-01 14:39:01 919

原创 快速排序算法详解与洛谷例题实战

通过避免完全排序,将时间复杂度优化至线性阶。分属不同分区,则相对位置可能改变,故为。个整数,使用快速排序升序排列(充分利用CPU缓存局部性原理。

2025-08-01 14:32:16 1209 1

原创 C++ STL multiset使用指南(万字详解)

int id;// 按学号排序// 自动按id排序优先使用find()替代count()检查存在性遍历删除时务必更新迭代器复杂对象必须提供const比较器C++17起利用extract()实现节点转移:auto node = scores.extract(90);// 转移而不复制通过本文的30+代码示例和深度解析,相信你已经掌握multiset的核心用法。它是有序重复数据的瑞士军刀,但在不需要排序的场景下,可能有更优选择。

2025-08-01 14:25:36 802

原创 CSP-J/S初赛全面备考指南(C++版)

本文为CSP-J/S初赛C++版备考指南,系统梳理了核心考点与备考策略。主要内容包括:1)计算机体系结构与数据表示等基础知识;2)C++指针、内存管理等语法特性;3)算法与数据结构重点,如时间复杂度分析、树结构算法;4)针对单选、程序阅读等题型的解题技巧;5)J组与S组的差异化备考建议。文章特别强调算法题分值占比持续上升的趋势,提供了动态规划、STL容器等高频考点详解,并附有地区分数线差异分析和真题示例,帮助考生高效备考。

2025-07-30 10:33:58 1076

原创 B4208 [常州市赛 2021] 移动

题目分析 本题要求计算教学楼内学生从起点到终点的最短路径,教学楼分为H层,每层M个位置。移动规则如下: 同层移动:可在同一层任意移动,花费为列差的绝对值。 跨层移动:只能通过楼梯在连续的楼层间移动,花费为层差的绝对值。 限制条件:每列的楼梯只能覆盖一段连续楼层。 解题思路 合并楼梯区间:将重叠或相邻的楼梯区间合并,形成更大的连续区间。 预处理楼梯间距离: 使用Floyd算法计算所有楼梯间的最短横向距离。 处理查询: 同层直接计算横向距离。 不同层时: 检查是否在合并后的同一区间内。 枚举所有可达的楼梯组合,

2025-07-29 11:04:19 874

原创 C++算法之单调栈

定义:队列中元素保持单调性,常用于求滑动窗口最大值/最小值。例子C++实现片段// 双端队列存索引i++) {// 移除超出窗口的元素if (!// 维护单调递减(队头最大)while (!单调栈是啥:保持元素单调顺序的栈,分递增和递减两种。怎么用:遍历数组,维护栈单调性,适时弹出计算。C++实现:用std::stack,存索引,代码简洁高效。应用广:解决Next Greater Element、柱状图面积等经典问题。核心优势。

2025-07-28 18:33:30 859

原创 AIOJ的介绍

总的来说,AIOJ作为一个专注于竞赛编程的在线评测系统,具有丰富的题库、多语言支持、实时评测和活跃的社区交流功能,为广大编程爱好者提供了一个优质、便捷的学习和交流平台。同时,AIOJ还提供题库和比赛,用户可以根据自己的兴趣和水平参加不同难度的题目练习和比赛,提高自己的编程水平和竞赛技巧。在以下文章中,我将详细介绍AIOJ的特点、功能和优势。实时评测:AIOJ系统采用实时评测的方式对用户的代码进行评分和反馈,用户可以在提交代码后立即看到评测结果,并根据反馈信息改进自己的代码,加深对编程知识的理解和掌握。

2025-05-01 23:17:21 516

原创 CSP-S复赛讲解

每个怪兽有一个实力 riri​,每个怪兽只可以欺负实力严格小于自己的怪兽,被成功欺负的怪兽出局。当未退出游戏的怪兽都已发起过攻击时,游戏结束。规定一种方案使得未退出游戏的怪兽数量尽可能少。

2024-10-26 23:03:12 1457

原创 科技与未来

科技的发展是不可逆转的趋势,它将深刻地影响我们的未来。在这篇文章中,我们探讨了科技的双刃剑效应、科技与人类精神的和谐共生、科技与可持续发展的关系、科技在教育中的应用、科技对工作市场的影响、科技与全球化的关系,以及科技与人类的未来。我们相信,只要我们以积极的态度去拥抱科技,我们就能利用科技的力量来创造一个更加美好的未来。这篇文章只是一个起点,它提供了一个框架,让我们思考科技与未来的关系。在实际的写作过程中,你可以根据自己的兴趣和专业知识,进一步丰富和深化文章的内容。

2024-10-26 10:17:33 899

原创 拥抱变化:在不确定性中寻找成长的力量

变化是不可避免的,但我们可以学会拥抱变化,从中寻找成长的力量。通过保持积极的心态,不断学习和创新,我们可以将变化转化为个人和社会发展的契机。让我们拥抱变化,以开放和创新的精神,共同创造一个更加美好的未来。在这个充满不确定性的时代,变化是我们最可靠的伴侣。它提醒我们,生活永远充满可能性,而我们每个人都有能力去塑造自己的未来。让我们不再害怕变化,而是勇敢地迎接它,用我们的智慧和勇气,共同开创一个充满希望的新世界。

2024-10-26 10:07:08 538

原创 深度优先搜索与广度优先搜索在C++中的应用

在计算机科学中,图的遍历是解决许多问题的基础,如路径寻找、网络分析等。深度优先搜索(DFS)和广度优先搜索(BFS)是两种基本的图遍历算法。本文旨在探讨这两种算法在C++中的实现及其应用,并通过比较分析它们的效率和适用场景。

2024-10-26 09:59:59 443

原创 堆意义下的数和运算

需要特别注意的是,在使用完堆中分配的内存空间后,必须使用关键字delete来释放这些内存,避免内存泄漏。在C++中,可以使用关键字new来动态分配内存,将数值存储在堆中。对于堆中的数值,可以进行各种运算操作,比如加减乘除、取模、取余等。在堆的意义下,数和运算指的是使用动态内存分配的方式来存储数值,并对这些数值进行各种运算操作。就表示将堆中存储的数值2和3相加。相加的结果赋值给了sum变量,最终sum的值为5。在堆中存储数值时,可以通过指针来访问这些数值。就可以访问到存储在堆中的数值1。

2024-08-05 14:35:55 596

原创 学习C++的5个好方法汇总

推荐的书籍如《C++ Primer》和《The C++ Programming Language》不仅详细介绍了C++的各项特性,还提供了丰富的实例和应用场景。以上就是要和大家分享的关于C++学习发的方法,各位小伙伴不要急于求成,而应享受每一步学习和解决问题的过程。每个人的学习路径都是独一无二的,重要的是找到适合自己的学习方法,持之以恒。《Effective C++》(Scott Meyers著)提供了深入的知识和实践指导,结合了国内的编程环境和实际案例,可以更好地理解和应用这些知识。

2024-08-03 13:46:45 570

原创 离散化C++

构建离散化映射表 离散化的关键是将连续的数据转换成离散的数据,并且保持数据的有序性。去重数据 在进行离散化时,通常会遇到一些相同的数据。排序数据 离散化的关键是将连续数据转换成离散数据,并保持数据的有序性。进行离散化 将原始数据按照离散化映射表进行映射,得到离散化后的数据。使用离散化后的数据 离散化后的数据可以用于各种场景,例如算法分析、数据结构设计、模型训练等。离散化是指将一组连续的数据转换为一组离散的数据,通常用于处理某些算法或数据结构的问题。以上代码将一组原始数据进行离散化,并输出离散化后的数据。

2024-08-03 13:37:41 609

原创 前缀和和二维前缀和

例如,prefixSum[0][0] 就等于 grid[0][0],prefixSum[1][1] 就等于 grid[0][0] + grid[1][0] + grid[0][1] + grid[1][1]。例如,prefixSum[0] 就等于 nums[0],prefixSum[1] 就等于 nums[0] + nums[1],以此类推。这样,sum 就等于 grid[i1][j1] + grid[i1+1][j1] + ... + grid[i2][j2]。使用前缀和数组可以高效计算某个区间的和。

2024-08-03 13:36:34 290

原创 Kruskal算法

请注意,以上代码仅实现了Kruskal算法的核心部分,即构建最小生成树。有关图的表示和输入,请根据具体情况进行调整。

2024-08-03 13:35:07 230

原创 最小生成树

是一个pair,用来存储边的权重和节点编号。然后,我们使用Prim算法计算最小生成树的总权重。最后,我们输出最小生成树的总权重。请注意,这只是一个简单的示例代码,并且假定输入的图是无向连通图。在实际应用中,你可能需要根据具体问题对代码进行适当的修改。在这个代码中,我们首先使用。

2024-08-03 13:32:42 227

原创 图的遍历C++(DFS+BFS)

使用这两种方法之一,您可以遍历图中的所有节点,并根据需求执行特定的操作。请注意,这些示例代码仅表示了图的遍历方法,您可以根据实际需求进行修改和扩展。在C++中,可以使用多种方法对图进行遍历,其中最常见的方法是深度优先搜索(DFS)和广度优先搜索(BFS)。

2024-08-03 13:29:25 569

原创 弗洛伊德算法(Floyd‘s algorithm)

弗洛伊德算法(Floyd's algorithm)是一种用于求解所有顶点间最短路径的算法。请注意,此示例代码中的邻接矩阵中的值应该是正整数,表示两个顶点之间的距离。中,然后使用三重循环来计算最短路径矩阵。最后,我们将最短路径矩阵输出到控制台。函数来执行弗洛伊德算法,该函数接受一个邻接矩阵和顶点个数作为参数。函数中,我们首先获取用户输入的顶点个数和邻接矩阵,然后调用。函数中,我们首先将邻接矩阵复制到一个临时矩阵。用于表示邻接矩阵的最大大小,以及常量。在该示例代码中,我们首先定义了常量。

2024-08-03 13:21:13 228

原创 Mojo——Someting important

Mojo can refer to several different things:In African-American folk magic and hoodoo, mojo refers to a small bag containing magical items such as herbs, roots, and charms that is carried for protection, luck, or other desired outcomes.In music, mojo can re

2024-08-02 16:27:40 259

原创 动态规划求解树和图问题

/ 树上的动态规划 vector<int> AdjList[MAXN];// 图上的动态规划 vector<int> AdjList[MAXN];// 递归函数,计算以节点u为起点的子图的动态规划结果 void dfs(int u) { visited[u] = true;// 递归函数,计算以节点u为根的子树的动态规划结果 void dfs(int u) { visited[u] = true;// 图的节点个数和边的个数 cin >> N >> M;// 树的节点个数 cin >> N;

2024-08-02 16:25:00 228

原创 动态规划C++

函数的参数包括背包容量W,物品重量数组wt,物品价值数组val,以及物品个数n。函数使用一个二维数组dp来存储中间状态的值。通过两重循环,递推计算出dp数组的所有值,并返回最终的最优解。动态规划是一种解决问题的算法思想,通常用于求解最优化问题。希望这个示例能帮助你理解如何在C++中实现动态规划。在这个示例中,我们定义了一个函数。

2024-08-02 16:22:39 235

原创 Perl编写的数字排序程序

注意,此程序假设用户输入的数字是正确的,并且每个数字以空格分隔。如果用户输入了非数字字符或者没有正确分隔数字,可能会导致错误。可以根据具体需求添加输入验证的部分。使用此程序,用户需要输入一组数字,以空格分隔。程序将使用Perl的。函数对数字进行排序,并打印排序后的结果。

2024-08-01 13:47:24 304

原创 实现哈夫曼树 Python和C++

这个程序首先通过统计字符频率来构建叶子节点列表,然后循环构建哈夫曼树,直到只剩下一个根节点。接下来,通过遍历哈夫曼树来生成每个字符的编码。最后,使用生成的编码来对原始数据进行编码和解码。这段代码首先会要求输入字符的数量和每个字符的频率,然后会构建哈夫曼树,并打印出每个字符对应的哈夫曼编码。需要注意的是,这里使用了优先队列来存储节点,并通过自定义比较函数对节点进行排序。

2024-08-01 13:44:36 267

原创 c++从小白到大神的方法

熟悉C++11及以后版本的新特性:例如自动类型推导(auto)、范围for循环(range-based for loop)、智能指针等。学习C++高级特性:例如泛型编程、异常处理、运行时类型信息(RTTI)等。理解C++对象模型和内存管理:学习如何管理内存以避免内存泄漏和错误。持续学习:跟上C++语言发展的步伐,学习新的最佳实践和工具。学习C++基础:包括语法、数据类型、控制流程、指针等。学习C++标准库:熟悉常用的容器、算法、IO流等。阅读C++源码:了解标准库和大型项目中的应用。

2024-08-01 13:41:19 492

原创 拓扑排序+代码

拓扑排序是图论中一个重要的概念,它主要用于解决有向无环图(DAG)中的问题。在拓扑排序中,我们需要对图中的节点进行排序,使得对于任意一对有向边 (u, v),u 在排序中出现在 v 之前。关键路径算法基于拓扑排序,通过对任务进行排序,计算每个任务的最早开始时间(EST)和最晚开始时间(LST),以及每个任务的总工期(TF)。拓扑排序的实现可以使用深度优先搜索(DFS)或者广度优先搜索(BFS)两种方式。下面我将分别介绍这两种实现方法。以上就是使用C++实现拓扑排序和关键路径的代码详解。

2024-08-01 13:35:52 935

原创 并查集(Disjoint Set)

并查集的基本思想是将每个元素看作一个独立的集合,每个集合有一个代表元素表示该集合。当两个元素要合并时,将其中一个元素的代表元素指向另一个元素的代表元素,即实现了两个集合的合并。当两个元素要合并时,将其中一个元素的代表元素指向另一个元素的代表元素,即将其中一个元素的parent值设为另一个元素的下标。Union函数实现了按秩合并的优化,将秩较小的集合合并到秩较大的集合上,减少合并时的时间复杂度。在并查集中,每个元素都是一个独立的集合,可以通过合并两个集合以及查询两个元素是否属于同一个集合来进行操作。

2024-08-01 12:20:35 238

原创 折半搜索(Binary Search)和meet in the middle

meet in the middle算法的时间复杂度通常为O(2^(N/2)),该算法主要适用于某些搜索问题的状态空间较大,但可以方便地拆分为两个子问题的情况。通过将搜索问题分解为两个子问题,并分别在两个子问题中进行搜索,meet in the middle算法能够大幅度减少搜索的时间复杂度。meet in the middle算法则是一种将搜索问题分解为两个子问题,并通过在两个子问题中进行搜索,最后将结果合并的方法。

2024-07-31 16:20:29 530

原创 Berlekamp-Massey算法

最终得到的LFSR的线性递推关系为:s[n] = C * s[n-L] + C * s[n-L+1] + ... + C * s[n-1]。a. 计算差异d = s[i] + C * s[i-1] + C * s[i-2] + ... + C * s[i-m]。输入:S = [1, 0, 1, 1, 0, 1] 输出:C = [1, 1, 1, 0, 1, 0]d. 如果L <= 2m,则更新L和C,令L等于当前迭代的次数,令C等于d。假设已知的输出序列为s[0], s[1], ..., s[N-1]。

2024-07-31 16:02:05 811

原创 Bellman-Ford算法

Bellman-Ford算法是一种用于解决单源最短路径问题的算法。它可以处理带有负权边的图,并且可以检测到负权环。上述代码使用了C++语言实现了Bellman-Ford算法,并且通过一个包含5个顶点和8条边的图进行了演示。

2024-07-31 15:51:22 545

原创 SPFA算法详讲

在一般情况下,SPFA算法的时间复杂度为O(kE),其中k是一个常数(一般在2到3之间),E是边的数量。然而,在最坏情况下,SPFA算法的时间复杂度可以达到O(VE),其中V是点的数量,E是边的数量。接下来 m 行,每行三个整数 u、v、w,代表一条从点 u 到点 v 的有向边,边的权值为 w。总之,SPFA算法是一种解决最短路径问题的有效算法,它在带负权边的图中表现出良好的性能,并且在一些情况下能够更快地求出最短路径。输出: 输出 n 行,每行一个整数,表示从起点到该点的最短路径长度。

2024-07-31 15:47:30 609

CSP初赛知识,包好的

看完了能过,好用又免费

2025-08-01

c++,排序,快速排序

快速排序 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。 对挖坑填数进行总结: i =L; j = R; 将基准数挖出形成第一个坑a[i]。 j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。 i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。

2023-08-29

空空如也

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

TA关注的人

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