zoukankan      html  css  js  c++  java
  • 编程珠玑阅读笔记01

    在此案例分析中我们可以发现,这些事实所包含的第-一个教训是: 仔细分析小问题
    有时可以带来巨大的实际好处。在本例中,花几分钟的时间来仔细分析,导致了代码长
    度、编程时间和运行时间减少了一个数量级。Chunk Yeager将军(第-一个 飞行速度超过
    音速的人)使用“简单、较少的零部件、易于维护、非常强壮”这样的词汇来赞扬飞机
    的引擎系统。该程序就包含了这些属性。然而,如果需求规格的某些方面发生变化的话,
    程序的特定结构将难于修改。本例除了极力宣扬巧妙编程外,还示范了下面的普遍原则:
    怡当的问题。问题的定义要占这场战役的90%左右。让人高兴的是,程序员并不满
    足于我所描述的第一个程序。如果你提出了恰当的问题,问题10、11 和12就有非常好
    的解答;在参考提示和解答之前,请仔细思考一下这些问题。
    位图数据结构。此数据结构代表了有限域中的稠集(dense set),每一个元素至少出
    现一次,没有其他的数据和元素相关联。即使不满足这些条件(例如存在多重元素或额
    外数据时),也可以使用有限域中的键作为表索引(表具有更复杂的条目);请参考问题
    6和8。

    时间和空间之间的权衡,二者不可偏废。有关时间和空间权衡的编程实践和原理:
    程序可以通过使用更多的运行时间来节省空间。例如,问题5答案中的两通道算法加倍
    了程序的运行时间,以减半其空间。可是,就我个人最常有的体验来说,减少程序空间
    同时也要求减少其运行时间'。位图的有效空间结构极大地减少了排序的运行时间。空间
    的减少导致时间减少有两个原因:需要处理的数据减少意味着处理它的时间也减少了;
    将数据保存在主存中而不是在磁盘中,可以避免访问磁盘时所花费的时间开销。当然,
    只有初始设计离最优状态差得很多时,才可能使时间和空间都得到改善成为可能。

    个人感受:这段阅读使我体会很多,之前我总是没有很详细的规划、思考问题,而是上

    去就敲代码,这样敲代码小作业还好,但是一旦遇到大工程,就敲着敲着就乱了。书上也说:

     仔细分析小问题有时可以带来巨大的实际好处

    解决办法:以后在敲代码前要先思考,不能闷头就敲

  • 相关阅读:
    GIT基础详解
    JS进阶解析
    JS基础解析
    CSS布局模型解析
    02.CentOS Linux 7.7 系统配置文档
    docker 创建bridge网络和修改默认网段
    selenium浏览器自动化测试工具 进阶使用
    前端导出Excel和打印介绍
    stm32使用gmtime()转换timestamp为日期,出的结果是乱的,不符合预期。改为localtime正常输出
    .net core api action 不能用作 httpget注释的参数名
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/13051676.html
Copyright © 2011-2022 走看看