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

    第10章 节省空间

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

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

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

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

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


    第11章 排序

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


    第12章 取样问题

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

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


    第13章 搜索

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

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


    第14章 堆

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

    两个关键函数 siftup siftdown

    优先级队列

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


    第15章 字符串

    散列,平衡树,后缀数组

  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/Aming-/p/13065335.html
Copyright © 2011-2022 走看看