世界机器人大会青少年机器人设计与信息素养大赛2025-2026 学年算法应用主题赛 / 初中组wrc.hao.work
WRCWorld Robot Contest青少年算法应用训练档案馆
四大文化场景完整题库档案HTTPS 资料库
02-algorithm-basics/sorting-stats-and-routing.md

排序、统计与路径规划

排序、统计与路径规划是初中组题目中最常见的三类基础方法。它们经常不是单独出现,而是组合出现:先统计,再排序;先建图,再比较路线;先分类累计,再做决策。因此,这篇文档的目标不是把三类方法割裂开,而是告诉你在什么场景下选什么方法,怎样一步一步落到代码。

关联训练题4

算法基础总览

排序、统计与路径规划是初中组题目中最常见的三类基础方法。它们经常不是单独出现,而是组合出现:先统计,再排序;先建图,再比较路线;先分类累计,再做决策。因此,这篇文档的目标不是把三类方法割裂开,而是告诉你在什么场景下选什么方法,怎样一步一步落到代码。

学习目标

  • 学会判断什么时候该排序、什么时候该统计、什么时候该建图。
  • 学会为多指标题目选择主关键字和次关键字。
  • 学会在时间序列、分类数据和网络结构中提取核心指标。
  • 学会用 BFS、Dijkstra 和状态扩展思路处理路径规划题。

适用场景

排序

  • 多个对象需要比较优先级。
  • 题目要求按得分、效率、时间、成本、风险等指标输出顺序。
  • 需要先按主指标排序,再按次指标打破并列。

统计

  • 需要计数、求和、平均值、最大值、最小值。
  • 需要按类别、时间段、渠道、阶段做分组累计。
  • 需要根据历史数据做趋势判断或简单预测。

路径规划

  • 题目中出现节点、边、距离、时间、代价、风险等网络元素。
  • 需要找到最短、最低代价或最优资源路线。
  • 存在载重、补给、地形、资源等额外约束。

排序方法

一、先确定排序目标

做排序题前先回答两个问题:

  • 你要找的是“最大/最小”,还是“完整排序结果”。
  • 如果第一关键字相同,第二关键字是什么。

例如 非遗综合分析:匠人效率分级与生产策略建议 中,可能会先按效率排序,再按残次率、工时等指标做次序调整。

二、常见排序策略

  • 单关键字排序:只按一个指标升序或降序。
  • 多关键字排序:先按主指标,再按次指标。
  • 排序后分级:排序完成后按阈值或排名划分等级。

三、实现步骤

  1. 计算每个对象的核心指标。
  2. 把指标放进统一的数据结构。
  3. 写清楚排序规则。
  4. 检查并列时的输出是否符合题面。

统计方法

一、基础统计

  • 计数:统计某类对象出现多少次。
  • 累计:把价格、距离、覆盖人数、工作量等加总。
  • 极值:找最大值、最小值。
  • 平均:求平均值并注意精度。

二、分类统计

适用于按渠道、地貌、工序、等级等类别汇总数据。

常见做法:

  • 用字典或映射表按类别累计。
  • 输出前再按类别名或累计值排序。

三、趋势统计

适用于 红色民生数据分析:根据地建设进度趋势预测民族文化宣传:节日客流与视频热度预测 这类时间序列题。

常见思路:

  • 先看相邻两期差值。
  • 再看整体是上升、下降还是波动。
  • 最后根据规则或均值给出下一期估计。

路径规划方法

一、什么时候要建图

只要题目中出现以下要素,就要考虑图建模:

  • 地点与地点之间的连接关系
  • 每条连接的代价、距离、时间、风险
  • 需要从起点走到终点,并比较路线优劣

二、BFS 适合什么

  • 边权相同或只关心“最少步数”。
  • 例如在网格、简单通路中找最少经过节点数。

三、Dijkstra 适合什么

  • 每条边的代价不同。
  • 需要求最小总代价、最短总时间、最小总风险等。

四、状态扩展最短路

红色路线与资源调度:长征片段补给路线规划丝路驼队运营规划:载重与补给优化 中,路线好不好不仅由距离决定,还与补给、载重、资源剩余有关。此时需要把“当前位置 + 资源状态”一起看成状态。

五、路径规划分步方法

  1. 先确定节点是什么,边是什么。
  2. 为每条边定义代价或约束。
  3. 明确最优目标是距离、时间、风险还是综合代价。
  4. 选择 BFS、Dijkstra 或状态扩展。
  5. 检查是否存在不可达情况。

输入输出分析

排序题

  • 输入通常是一组记录。
  • 输出可能是排序后的完整列表,也可能只是前几名和分级标签。

统计题

  • 输入可能是时间序列、分类数据或多张记录表。
  • 输出通常是汇总值、趋势标签、预测值或分类结果。

路径题

  • 输入通常包括节点数量、边数量、边信息和额外约束。
  • 输出可能是总代价、最优路径、是否可达和资源消耗说明。

方法清单

方法解决什么问题时间复杂度提示典型 case
单关键字排序快速找顺序常见为 O(n log n)s1-jh-04
多关键字排序并列时继续比较常见为 O(n log n)s1-jh-04s4-jh-04
分类累计按类别汇总常见为 O(n)s2-jh-03s3-jh-04
趋势统计判断上升下降和预测常见为 O(n)s2-jh-02s4-jh-03
BFS最少步数路径常见为 O(n + m)简化路径题
Dijkstra带权最短路常见为 O((n + m) log n)s2-jh-01
状态扩展最短路带资源约束的最优路视状态数量而定s2-jh-01s3-jh-02

常见错误

  • 排序时忘记题目要求是降序还是升序。
  • 并列情况没有写次关键字,导致输出不稳定。
  • 统计时把“总和”和“当前值”混用。
  • 趋势题把短期波动误判成长期趋势。
  • 路径题只记录节点,不记录与资源相关的状态,导致最优解被漏掉。
  • 没有处理不可达、空图或单节点等边界情况。

与题库 case 的联系

s1-jh-04-heritage-multi-analysis

  • 重点练多指标排序、综合评分和分级输出。

s2-jh-01-route-supply

  • 重点练图建模、最短路和资源约束路线。

s2-jh-02-livelihood-trend

  • 重点练时间序列统计、趋势标签和简单预测。

s3-jh-02-caravan-plan

  • 重点练载重、补给和路线代价之间的平衡。

s4-jh-04-resource-allocation

  • 重点练排序、规则筛选和多约束方案比较。

训练建议

  • 先用小数据手算一遍,再写排序和路径代码,确保规则理解正确。
  • 做路径题时,先画图,再写代码;做排序题时,先写出关键字顺序,再实现。
  • 每完成一题,都回顾这道题到底主要依赖排序、统计还是路径规划,避免方法混淆。