勘误、手工验证与双语阅读
书屿算法附录手算:用三个虚构输入核对每步状态
把附录步骤转成可检查的状态记录,以二、五、三的示例手算最大值过程,分清原书规则与个人测试。
本文目录
读懂算法附录,不只是在旁边写一句看懂了。本篇在书屿阅读步骤说明,再用纸笔或外部清单记录每轮输入、判断和状态。二、五、三只是自设教学示例,不冒充某本真实附录的数据;书屿不执行程序、不自动验证算法正确性,计算与核对都由读者手工完成。
先把实际附录范围和前提读清
选一段自己有权阅读、步骤较短的算法说明,记录书名版次、附录标题和具体位置,先完整读输入、输出与限制。分清伪代码、自然语言解释和示例,不把印在正文里的代码当应用可以运行的功能。若步骤依赖前文定义,先回去核对变量含义,再开始手算。本篇演示从非空数字序列找最大值,只在你实际阅读的规则确实相同时才能用于对照;原书是排序或别的任务,应另列符合原规则的小例子,不能把两种算法混为同一过程。
给教学输入和目标写清身份
在自己的清单写输入依次二、五、三,目标返回最大数值,不返回位置,也不要求重新排序。顺序要保留,不先把它排成二三五再声称照原次序执行。注明这些数由自己设定,原书未提供这一例时不要用引号或书页来源把它伪装成作者演示。只处理普通可比较数,不引入空值、缺失值或特殊表示。三项足以观察候选更新与不更新两种情况,先让任务边界小而明确,再考虑更复杂输入,避免一次加入过多规则后看不出哪一步造成差异。
先定初始化与每轮记录字段
本例规则为先取第一项作候选,再从第二项开始逐个比较,遇到更大值才替换候选。先写候选二、下一待看位置二,以及尚未比较的五和三,初始化不算一次与自身比较。记录字段包括轮次、当前输入、比较前候选、条件真假、比较后候选和已处理范围,可在外部列表写,不假定阅读器有算法跟踪表。若实际附录采用另一种初始化,应按原文另做记录,尤其不能擅自用零作为所有输入都适用的起始最大值,负数情况会暴露这种错误。
逐轮写判断并保留未变化状态
第一轮读第二项五,比较五是否大于候选二,结果真,候选更新为五,已处理前两项。第二轮读第三项三,比较三是否大于五,结果假,候选仍五,已处理全部三项。不要省略第二轮,以为没变化就没有发生步骤;保留不更新状态才能解释为什么最后不是三。两轮与三项输入的数量关系来自本例先取首项的规则,不能套到所有循环。每写一行回附录检查条件方向、读入位置与更新顺序,不用最终答案碰巧对了代替过程正确。
用已处理范围检验候选含义
每轮结束问候选是否等于目前已看数里的最大值,第一轮是二和五中的五,第二轮是二五三中的五。这里检验的是本次有限手算,不等于已经证明算法对所有序列正确。把停止条件也写清,本例没有第四项,因此输出候选五,不再多读一次未知值。若想理解一般性证明,应另外阅读原书关于不变式与终止的论述,不把自己的三行表称为严格证明。读者能用记录解释每次保留或替换的依据,才算这次步骤理解完成,而不是只记住最大值这个结果。
另做反例测试时一项只改一处
在独立副本把输入换成负二、负五、负三,仍从首项开始,应依次保留负二并输出负二,用来检查有没有错误从零起步。再想研究相同最大值,可另设五、五、三,严格大于时候选数值仍五,但若任务还要求位置,就必须读原书如何处理平局,本篇没有定义位置输出。空序列不满足非空前提,标超出本例范围,不猜系统会返回零。每份测试写自己的输入与预期,不覆盖原三项记录,更不声称这些少数例子足以排除全部程序缺陷。
笔记同时保留原文定位与手算身份
在当前可用笔记中记附录位置、规则摘要与外部手算记录名称,能选文字时只摘必要条件,个人输入与结论明确另标。扫描页不能选择时手工记章节和图像页,不能伪造精确文本锚点。离开后只靠记录返回原步骤,检查自己是否漏了初始化或终止条件。重要笔记按当前能力导出并在外部打开确认,原书与手算清单分别保存,笔记文件不代替完整书籍。记录标题写手工跟踪及日期,之后真正编程实现是另一项工作,不能把阅读记录标成应用执行日志。
答案不一致先比较最早分歧行
自己的结果不是五,先逐行找候选首次不同处,查条件是否写反、是否把保留候选误成总换当前值,或漏读某项。若答案对而轮数不对,回初始化和已处理范围核对,不凭结果判全部正确。原书示例与本例不同先比输入和前提,不急着断言作者算错。读不清符号则放大原文或核对正版来源,不能凭猜测续算。最终记录要能还原输入、规则、每轮状态和停止原因,仍有疑问列具体行待核,算法阅读的收获来自可解释过程,而非应用替你给出未经验证的答案。
相关教程与资料
书屿论证拆读:把作者主张、证据和推理连接分开、书屿图表编号核对:让图号、页码与阅读笔记对应。
资料核对:2026 年 11 月 4 日,书屿 1.1.3,最低要求 iOS / iPadOS 15.6。功能范围依据官方 App Store 说明与Apple 公开版本查询。本文提供自行执行的练习和检查,未声明已在真机或所有目标环境逐项实测;示例内容为教学设定,具体控件以安装版本为准。