第五章 编程中的次要问题

第五章中主要讨论程序中的小问题,首先,将上一章的二分查找实现为一个可靠的c语言函数,之后就可以使用脚手架来对它进行探测已经更加全面的测试,从而获得值得信赖的程序。

int binarysearch(DataType t)
{    int l,u,m;l=0;u=n-1;while(l<=u){m=(l+u)/2;if(x[m]<t) l=m+1;if(x[m]==t) return m;if(x[m]>t) u=m-1;   }
return -1;
}

运用该函数的第一步是手工走查少量测试用例。然而当程序更大测试更多时,就需要自动化工作的脚手架来完成了。

在编写正确的程序时有以下的原则:

脚手架。最好的脚手架通常就是那种最容易构建的,对于许多算法任务而言,命令行技术就很好。

编码。对一高难度的函数来说,最简单的方法就是先使用便利的高级伪代码为其描绘股价,然后将之转换成实现语言。

测试。测试最贱时在脚手架中进行测试要比在一个大系统中简单和全面。

调试。程序在脚手架中隔离时调试起来会很困难,并且把她嵌入到真是环境中时调试甚至会更加困难。

第六章 性能透视

简单而且功能强大的程序可以让用户高兴并且也不会让程序构建者烦恼,这是程序的终极目标,也是前面五章的重点,现在我们需要将注意力转向另一特定方面:效率。

在一个特殊的案例中,Appel研究一个多物体相互作用的问题。

转载于:https://www.cnblogs.com/alaundo/p/4266108.html

读《编程珠玑》 (三)相关推荐

  1. 《读编程珠玑有感》——细节处见技术

    <读编程珠玑有感>--细节处见技术 众所周知,<编程珠玑>是一本程序员的必读图书,作为一名程序员的我,当然不能错过. 最近粗读了两遍,最大的感受就是,这是一本值得逐字逐句推敲学 ...

  2. 编程珠玑第12章习题

    内容来自互联网,做了一些修改 参考: http://blog.csdn.net/tianshuai1111/article/details/7583297 http://blog.csdn.net/t ...

  3. 编程珠玑读书笔记之磁盘文件排序

    输入: 所输入的是一个文件,至多包含n个正整数,每个正整数都要小于n,这是 n = 10^7.如果输入时某个整数出现了两次,就会产生一个致命的错误.这些整数与其他任何数据都不关联. 输出: 以增序形式 ...

  4. 《编程珠玑(续)(修订版)》—第2章2.1节Awk中的关联数组

    本节书摘来自异步社区<编程珠玑(续)(修订版)>一书中的第2章,第2.1节Awk中的关联数组,作者[美]Jon Bentley,更多章节内容可以访问云栖社区"异步社区" ...

  5. 【编程珠玑】陪着奶猫看看书--《编程珠玑》第一章

    陪着奶猫看看书–<编程珠玑>第一章 首先说说小奶猫我为什么要读<编程珠玑>这本神作,当年小奶猫刚刚进入大学时候是个纯洁的少年,啥都不懂,要是哪个女生下午在外面问我带身份证没有, ...

  6. 读编程好书,内化并运用

    文章是我在读<程序员的修炼之道:从小工到专家>这本书的时候看到的一篇我觉得比较优秀的序言,所以分享出来,也便于自己阅览,序言如下如下:  程序员心底的小声音 编程大约有三个境界,新手.高手 ...

  7. 编程珠玑第二章习题答案

    转载自互联网,并做了修改 1.提供单词和词典,找到该单词的所有变位词,可以事先花时间和空间处理下该词典. 为了找出给定单词的所有变位词,首先是计算给定单词的标识.如果不允许预处理,只能够顺序读取文件, ...

  8. UART0串口编程(三):中断方式的串口编程;用中断编写发送函数

    UART0串口编程(三) 一:中断方式的串口编程 1.用中断方式编写串口程序由那几部分组成 2.硬件上的支持 1>UART0 发送FIFO缓冲区 A.UART0含有1个16字节的发送FIFO缓冲 ...

  9. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    为什么80%的码农都做不了架构师?>>>    本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...

  10. 《编程珠玑(第2版•修订版)》—第2章2.5节原理

    本节书摘来自异步社区<编程珠玑(第2版•修订版)>一书中的第2章2.5节原理,作者[美]Jon Bentley,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2 ...

最新文章

  1. Failed to load the native TensorFlow runtime.
  2. Grafana plugins zabbix 安装
  3. java执行查询postgresql得到中文乱码_比这个夏天还要热的PostgreSQL数据库来啦!
  4. 信息学奥赛一本通(1138:将字符串中的小写字母转换成大写字母)
  5. python绘制三维图散点图_python matplotlib模块——绘制三维图形、三维数据散点图...
  6. java日期算前一天_java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)...
  7. 在.NET环境禁止别人调用代码
  8. java 排序 1和1_160308、java排序(形如1.1、1.2.1)
  9. 怎么测试本地网页在不同分辨率下电脑显示效果_汇总一波百万高清壁纸站,8K分辨率的都有...
  10. 二分法(三):采用二分法解决“最大化最小值问题”
  11. matlab输出n个a,输入a,n两个参数,要求输出aaa...a(共n个)的值
  12. maven profiles配置_nexus3搭建maven私服(完整版)
  13. 58、IPv6访问控制列表及ICMPv6简介
  14. g4900 win7 核显驱动_INTEL WIN7核显驱动电脑端下载-支持8、9代CPU pc下载
  15. 模仿全能扫描王实现文档和证件扫描
  16. kali虚拟机连接外网VMnet8显示无分配网络权限
  17. 计算机类中文核心期刊简介
  18. 第10章 模糊查询和聚合函数
  19. java 石头剪刀布_java循环练习:石头剪刀布
  20. 通话用哪款蓝牙耳机好?通话效果比较好的蓝牙耳机推荐

热门文章

  1. 博客园如何转载别人的文章
  2. ios开发之UIView和UIViewController
  3. 亲历dataguard的一些经验问答题
  4. LINKs: Xamarin.Forms + Prism
  5. 树网的核(codevs 1167)
  6. Java并发机制深究1-synchronized和volatile
  7. http://jsbeautifier.org/
  8. javascript调用activex控件
  9. Adobe宣布不再针对iPhone开发Flash工具
  10. Java基础学习总结(14)——Java对象的序列化和反序列化