本章进度 13 / 18
72%
正文已完成
L288复杂度先回答增长趋势
不背公式,先用输入翻倍后的工作量变化理解常数、线性和平方增长。
先用本课建立“复杂度”的基本直觉,后面的判断和练习才不会只靠记结论。
建议按完整课程顺序先看上一课;如果术语陌生,可以随时回补。
- 无需安装新工具
- 直接阅读并完成本页理解检查
复杂度描述输入增加时工作量的增长趋势。一次固定读取、逐项扫描和两两比较,会在数据翻倍时呈现完全不同的变化;这个趋势能帮助你找到需要优化的位置。
能用输入规模增长解释一段流程的大致复杂度趋势。
核心概念
先把关键判断说清楚
常数表示不随规模遍历
凭稳定键读取一个映射项通常只做有限步骤,数据翻倍不要求逐项检查。
线性表示每项一次
扫描、转换或校验全部记录时,输入翻倍,主要工作量也大致翻倍。
平方常见于两两比较
每个元素都与所有其他元素比较时,输入翻倍可能带来约四倍比较,规模稍大就会显著变慢。
案例拆解
联系人去重从两两比对到按键分组
脚本对每个联系人再遍历全部联系人比较邮箱,1 万条数据开始明显卡顿。
- 01
识别当前结构为外层每条记录乘内层全部记录的两两比较。
- 02
改为单次遍历,用规范化邮箱作为映射键收集重复项。
- 03
用 1 千、5 千、1 万条样本记录处理时间,确认增长趋势已接近线性。
案例结果
工作量从随记录数平方增长改为主要随记录数线性增长。
提交前练习
现在轮到你
选一个处理数据的流程,估计输入翻倍后核心步骤会增长多少。
选做练习:本节练习可用于加速你巩固,但不影响继续学习。
内容会自动保存在当前设备
查看参考答案与评分标准
参考答案
输入 n 为文件数;核心操作是逐文件读取一次,没有嵌套;n 翻倍时读取次数约 2 倍,属于线性趋势;用 100、1,000、10,000 个小文件记录总耗时。
评分标准
- 输入规模定义明确
- 增长判断来自代码或流程结构
- 验证包含多个数量级
本课收口 · 理解检查
用 30 秒确认你理解了
用 30 秒理解检查确认你抓住了重点;阅读标记、练习和总结都不设硬门槛。
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。
资料来源
继续核对与延伸阅读
本课内容最近更新于 。
- MDN Web Docs↗reference · 核对日期 2026-08-23