优化代码,编写优秀程序绝佳的方法,就是对数据的研究。对数据的仔细研究,之后采用合适的良好的数据结构,会对程序结构代码极大地优化和良好的改变。
该章节试着解决这样的问题:很多繁琐、重复、耦合、难以维护的程序,其实可以用简单的数据结构应用,变得精巧、清晰和完美。
举个例子,一个程序需要统计1到500之间的数字,每个数字在文本中出现的次数,可能会有人写出这样的程序:
if( k==1 ) c1++; if( k==2 ) c2++; if( k==3 ) c3++; if( k==498 ) c498++; if( k==499 ) c499++; if( k==500 ) c500++;
该程序用了500个变量存储每个数字出现的次数,然而仔细研究发现可以用一个500个元素的数组轻松实现。
恰当的数据视图实际上决定了程序的结构,很多程序都可以通过重新组织内部数据而变得更小(并且更好)。
使用模板技术来解决格式化大型文本的需求。
能用小程序实现的,就不要编写大型程序。比如要处理某个N=23的情况的程序,其实完全可以编写只针对N的程序,最后将N赋值为23来实现。
程序员在节省空间方面无计可施时,将自己从代码里解脱出来,退回起点并集中心里研究数据,常常能有奇效。(数据的)表示形式是程序设计的根本。
以下是一些参考方法:
- 使用数组重新编写重复代码。冗余的相似代码常常可以用最简单的数组来描述。
- 封装复杂结构。如果数据结构比较复杂,直接抽象成类
- 尽可能使用高级工具:超文本、名值对、电子表格、数据库、编程语言
- 从数据得出程序的结构:通过使用恰当的数据结构替代复杂的代码,从数据可以得到程序的结构。
万变不离其宗:在动手编码之前,优秀的程序员会彻底理解输入、输出和中间数据结构,并围绕这些结构创建程序。