编程珠玑笔记(5)-数据决定程序结构

  在这一章节中,作者通过几个不同的事例叙述了数据结构和程序之间的关系,中心思想只有一个:我们应当采取更好的数据结构,起码不是显然不适合这个程序的数据结构,以此来使得程序的编写得到简化,并获得其他的诸多好处。至于这样做是否值得,作者的答案显然是肯定的。

  • 原理总结
  •   各个事例的精髓是一致的[……]

    Read more

    编程珠玑笔记(4)-啊哈!算法(III)

  • 问题C
  • 给定一个英语字典,找出其中的所有变位词集合。例如,“pots”、“stop”和“tops”互为变位词,因为每一个单词都可以通过改变其他单词中字母的顺序来得到。

  • 解答
  •   我们获得的啊哈!灵光一现就是标识字典中的每一个词,使得在相同变位词类中的单词具有相同的标识。然后,将所有相同标识的[……]

    Read more

    编程珠玑笔记(3)-啊哈!算法(II)

  • 问题B
  •   将一个n元一维向量向左循环移位i个位置。简单的代码使用一个n元的中间向量在n步内完成该工作。你能够仅使用数十个额外字节的存储空间,在正比于n的时间内完成向量的旋转?
      可以通过如下方式解决该问题:首先将x的前i个元素复制到一个临时数组中,然后将余下的n-i个元素向左移动i个位置,最[……]

    Read more