zoukankan      html  css  js  c++  java
  • 编程珠玑(第二版)阅读笔记04

    第10章 节省空间

    使程序变得更加简单,网络传送数据时所需要的时间通常直接与数据的规模呈正比

    关键在于简单
    简单性可以衍生出功能性、健壮性以及速度和空间

    数据空间技术
    不存储,重新计算。牺牲更多的运行时间来换取更小的空间。对于许多跨网络运行的程序来说,在数据规模方面我们最关心的是传输数据需要花费的时间。有时我们会采纳“保存、不进行重新传输”的建议,通过本地缓存的方式减少需要传输的数据量。
    稀疏数据结构。使用指针来共享大型对象
    数据压缩
    分配策略
    垃圾回收

    代码空间技术:函数定义,解释程序,翻译成机器语言

    空间开销,空间度量,
    折中(有时程序员必须牺牲程序的性能、功能和可维护性以获得内存)
    与环境协作,使用适合任务的正确工具


    第11章 排序

    插入排序,一种简单的快速排序,更好的集中快速排序


    第12章 取样问题

    解决现有的问题是程序员任务的一部分,另一个也许更重要的部分是做好解决未来问题的准备

    编程过程中几个重要步骤:
    正确理解锁遇到的问题
    提炼出抽象问题
    考虑尽可能多的解法
    实现一种解决方案
    回顾


    第13章 搜索

    五种表示集合的重要数据结构
    有序数组、有序链表、二叉树、箱、位向量

    库的作用,空间的重要性,代码调优方法


    第14章 堆

    二叉树是一个堆
    第一个性质是顺序:任何结点的值都小于或等于其子结点的值。
    第二个性质是形状:尽可能靠左分布。树中不存在空闲的位置,如果它有N个结点,那么所有结点到根结点的距离都不超过log2N

    两个关键函数 siftup siftdown

    优先级队列

    高效性,形状性质保证了堆中所有结点和根结点之间相差的层数在log2n之内。
    正确性,形状和顺序性质是另一种不变式。
    抽象性
    过程抽象
    抽象数据类型


    第15章 字符串

    散列,平衡树,后缀数组

  • 相关阅读:
    bzoj 1051: [HAOI2006]受欢迎的牛
    bzoj 1192: [HNOI2006]鬼谷子的钱袋
    一些动规水题
    USACO 2014 Open Silver Fairphoto
    USACO 2013 Nov Silver Pogo-Cow
    09day1
    09day2
    08day2
    08day1
    07day2
  • 原文地址:https://www.cnblogs.com/Aming-/p/13065335.html
Copyright © 2011-2022 走看看