小杨有 100 元去超市买东西,每个商品有各自的价格,每种商品只能买 1 个,小杨的目标是买到最多数量的商品。小杨采用的策略是每次挑价格最低的商品买,这体现了分治思想。
分治三步:分解(Divide)→ 解决(Conquer)→ 合并(Combine)。归并排序的关键在于合并两个有序子数组。
归并排序递归划分时,边界容易出错。注意 merge 的区间范围是左闭右开还是闭区间。
【考点】贪心算法|排序思想|算法策略辨析
🎯 考纲定位(考点定位) 【考点】贪心算法|排序思想|算法策略辨析。命题人故意把贪心策略包装成分治概念,卡住分不清算法思想本质的考生。
🧠 解题思维(拆解与通法) 看到“最多数量的商品”先想到贪心——每次挑最便宜的买能最大化数量。题目说“每次挑价格最低的商品买”正是贪心策略的典型描述。关键要判断“分治思想”是否成立:分治需要把大问题拆成若干子问题递归求解,而这里只是单次排序后依次选取,没有拆分、递归、合并的过程。
🪤 陷阱拆解(命题人的套路) 选A的陷阱在于把“贪心”误认为“分治”。命题人利用考生对算法术语的模糊记忆:贪心是局部最优累积,分治是整体拆分递归。题目最阴险的细节是“这体现了分治思想”——绝对化表述,直接把策略定性,不解释过程。如果你只背结论“贪心能解决此类问题”,就会忽略“分治”这个关键词的语义陷阱。
🔄 反命题思维(教练升华) 如果把题目改成“小杨每次挑最便宜的买,这种排序后选取的过程体现了分治思想”,答案就会变A——因为排序本身可以用快速排序(分治)实现。刷到类似题,先问自己“命题人想考我什么”,别被表面描述带偏。