2012年8月14日

编程珠玑:单词频率最高选取

摘要: 问题描述:对一个输入文本中的每个单词的出现次数统计,并选取出现频率最大的10个单词首先用C++实现,着重注意STL的map,vector排序用法,这里与编程珠玑的代码不同。不知道何故,编程珠玑上的代码, 输入之后得到的结果是按照单词排序的,而不是按照次数排序,这里做了修改C++实现代码:#include <iostream> #include <stdlib.h> #include <string> #include <map> #include <vector> #include <algorithm> using na 阅读全文

posted @ 2012-08-14 19:49 as_ 阅读(565) 评论(0) 推荐(1) 编辑

编程珠玑:变位词程序的实现

摘要: 这个程序的实现有助于压缩key的大小,使查找效率更高1.问题描述 给定一本英语单词词典,请找出所有的变位词集。所谓的变位词是指,组成各个单词的字母完全相同,只是字母排列的顺序不同。2.解决思路编程珠玑的变位词程序要按照三个步骤来执行,其中前一个步骤程序的输出作为下一个步骤程序的输入:第一:程序标识单词,第二:程序排序标识后的文件,第三:程序将这些单词压缩为每个变位词类一行的形式下面是编程珠玑的举例,仅有6个单词的字典的处理过程由以上可看出需要三个程序的处理1).sign程序:假设输入单词的长度不超过100,对每个输入的单词依照字母进行排序,将结果输入这个单词所对应的”签名“2).sort程序: 阅读全文

posted @ 2012-08-14 15:42 as_ 阅读(3812) 评论(1) 推荐(1) 编辑

编程珠玑:位图法排序

摘要: 问题描述输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=107。如果在输入文件中有任何正数重复出现就是致命错误。没有其他数据与该正数相关联。输出:按升序排列的输入正数的列表。约束:最多有1MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒就不需要进一步优化。程序设计与实现概要:应用位图或位向量表示集合。可用一个10位长的字符串来表示一个所有元素都小于10的简单的非负整数集合,例如,可以用如下字符串表示集合{1,2,4,5,8}:0 1 1 1 0 1 0 0 1 0 0代表集合中数值的位都置为1,其他左所有的位置为0.编程珠玑当中建议是一年个一个具有 阅读全文

posted @ 2012-08-14 14:06 as_ 阅读(8847) 评论(1) 推荐(1) 编辑

导航