本章的内容与第4章一脉相承。第4章详细叙述了如何获得正确的二分搜索程序,并给出了详细的伪代码和正确性证明。本章则是在其基础上真正实现二分搜索的C语言程序。在叙述的过程中,作者展示了如何利用脚手架和断言技术来对代码段进行测试。
第5小节还介绍了计时的概念,但根据习题7中的讨论,书中展示的计时脚手架是有缺陷的,主要在于脚手架中的代码对数组中的数据进行顺序搜索,这导致了人为的空间局部性,高速缓存的作用使得脚手架的计时结果比实际情况可能要小。为了获得更真实的数据,宜采取随机化的搜索测试。
<li><strong>原理总结</strong></li>
脚手架。 最好的脚手架通常是最容易构建的脚手架。
编码。 对于比较难写的函数,我发现最容易的方法是使用方便的高级伪代码来构建程序框架,然后将伪代码翻译成要实现的语言。
测试。 在脚手架中对组件进行测试要比在大系统中更容易、更彻底。
调试。 对隔离在其脚手架中的程序进行调试是很困难的,但是若将其嵌入真实运行环境中,调试工作会更困难。
计时。 如果运行时间不重要,线性搜索要比二分搜索简单得多;许多程序员都可以在第一次实现的时候得到正确的代码。正是由于运行时间非常重要,我们才引入了更加复杂的二分搜索,所以,我们应该进行实验以确保程序能够达到我们预期的性能。