下面 C++ 代码实现了某种排序算法,其中代码片段 my_sort(arr, begin, i); 和 my_sort(arr, i + 1, end); 采用的算法思想是( )

这题核心就是看递归调用结构:把大问题拆成两个子问题分别解决,这是分治法的典型特征。
很多学生会因为看到‘递归’二字就下意识选‘递推’,其实递推是数学关系或状态转移,而这里明显是‘分而治之’;也有人选‘搜索’,把递归当成暴力枚举,忽略了排序问题的本质。
【考点】分治法与递归
命题人把 QuickSort 或 MergeSort 的递归框架抽成通式,卡住的是‘不会把递归看成分治结构’的考生——他们往往只盯着单次循环,忽略了递归调用的本质是‘分而治之’。
看到 my_sort(arr, begin, i); 和 my_sort(arr, i + 1, end); 这两次递归调用,立刻定位到‘分治法’:将大问题拆成两个小问题,分别求解。通法是‘看递归结构’——任何把问题拆成子问题递归求解的,都是分治思想。本题中 i 是分割点,左半段和右半段独立排序,最后合并(或原地调整)完成整体排序。
选项辨析:
最阴险的是‘递归=递推’的直觉陷阱——如果你只背结论、不理解本质,就会把分治误判为递推。
考频趋势:分治思想在 GESP 六级中属于高频考点。从题库数据看,‘排序基础’共考过 249 题,其中 GESP 六级独占 12 题;‘函数与递归’共 67 题,六级占 8 题;‘STL 容器’共 127 题,六级占 28 题。近三年(2023-2025)排序相关题目数量持续攀升:2023 年 22 题、2024 年 51 题、2025 年 57 题,六级作为算法核心层级,这类递归分治题在六级中占比稳定在 10%-15% 区间。
预测:基于近年趋势,未来六级仍会高频出现递归分治类题目,尤其是结合 STL 容器(如 vector)的排序、查找或区间操作。命题人可能继续用‘通用递归框架’包装经典算法,要求考生透过代码看本质,而非死记流程。
综上,答案选 C。