编程珠玑(第二版)阅读笔记02
第二章呢,是以三个问题展开的。
A、找出顺序文件中缺失的记录。用的是二分查找的方法。
B、在正比于n的时间内将一个n元一维向量循环左移i个位置(i < n)。
此问题解决方法是将向量中0到i-1号元素翻转,再将i到n-1号元素翻转,最后将整个向量翻转,即:
Reverse(0, i-1);
Reverse(I, n-1);
Reverse(0, n-1);
C、找出英语词典中所有变位词的集合。变位词就是例如pots、stop、tops这样的单词。
此问题解决方法是给词典中的每一个单词做标识,比如将每个单词中的字母按字典序排列后作为该单词的标识,然后所有单词按照标识排序,最后去掉重复的标识。
过去没有实验过找出顺序文件中丢失的部分,倒是做过找出一段文章里出现次数最多的单词的实验。跟字母有关。可以借鉴学习书中提到的方法。