搜索引擎会通过日志文件把用户每次检索使用的所有查询串都记录下来,每个查询串的长度不超过255字节。假设目前有一千万个查询记录(重复度比较高,其实互异的查询串不超过三百万个;显然,一个查询串的重复度越高,说明查询它的用户越多,也就是越热门)。现要统计最热门的10个查询串,且要求使用的内存不能超过1GB。以下各方法中,可行且效率最高的方法是(41)A.将一千万个查询串存入数组并进行快速排序,再统计其中每个查询串重复的次数B.将一千万个查询串存入数组并进行堆排序,再统计其中每个查询串重复的次数C.利用哈希表保存所有的查询串并记下每个查询串的重复次数,再利用小根堆选出重复次数最多的10个查询串D.利用哈希表保存所有的查询串并记下每个查询串的重复次数,再利用大根堆选出重复次数最多的10个查询串

搜索引擎会通过日志文件把用户每次检索使用的所有查询串都记录下来,每个查询串的长度不超过255字节。假设目前有一千万个查询记录(重复度比较高,其实互异的查询串不超过三百万个;显然,一个查询串的重复度越高,说明查询它的用户越多,也就是越热门)。现要统计最热门的10个查询串,且要求使用的内存不能超过1GB。以下各方法中,可行且效率最高的方法是(41)

A.将一千万个查询串存入数组并进行快速排序,再统计其中每个查询串重复的次数
B.将一千万个查询串存入数组并进行堆排序,再统计其中每个查询串重复的次数
C.利用哈希表保存所有的查询串并记下每个查询串的重复次数,再利用小根堆选出重复次数最多的10个查询串
D.利用哈希表保存所有的查询串并记下每个查询串的重复次数,再利用大根堆选出重复次数最多的10个查询串

参考解析

解析:本题考查数据结构应用知识。
快速排序和堆排序都属于内部排序方法,要求待排序的元素序列都放在内存。按最坏情况考虑,一千万个查询串需要的存储空I间为225千万字节,也就是2.25×1010)字节,远超过1GB(约等于109)的存储容量限制,所以选项A和B是不可行的。另外,即便不考虑存储容量限制,在只要求找出最大的10个元素时快速排序也是不适用的。
选项C和D的区别是利用大顶堆还是小顶堆。设想需要在1000个元素中找出10个最大元素,用小顶堆的思路是:先用前10个元素建个小顶堆(堆顶是最小元素),此后从第11个元素开始,顺序地将每个元素与堆顶元素比较,若小于或等于堆顶元素就舍弃之,若大于堆顶元素,则用该元素替换堆顶元素,并再次调整为小顶堆。重复该过程,直到最后一个元素处理完,那么,在小顶堆中留下的10个元素实际上就是这1000个元素中的前10大元素。
本问题中需要在兰百万个元素中按照重复次数找最大的10个元素,由于10个元素构成的小顶堆建立和调整时所花费的时间是个很小的常数c0,因此,釆用这种方式在n为三百万个元素时找出10个最大者的运算时间是线性阶的(大约为n+c0,c0是小整数)。反之,如果采用大顶堆,一种情况是建立10个元素构成的大顶堆,则在顺序地处理后面元素时,无法简单地确定需要替换该大顶堆中的哪个元素;另一种情况是建立由三百万个元素构成的大顶堆,在该数据量情况下,哈希表和大顶堆都在内存存储,可能会突破1GB的存储容量限制,而且建立初始大顶堆的运算时间(有可能是达到4n)以及后面9次调整大顶堆的时间(9logn)的时间都远多于前面的小顶堆方案。

相关考题:

用户通过Internet上的文档查询服务器查询文件时,只要输入文件名或文件说明中待查的字符串即可。()此题为判断题(对,错)。

SQL查询就是用户使用SQL语句来创建的一种查询。SQL查询主要包括______、传递查询、数据定义查询和子查询等。

【程序说明】 模糊查询用户指定表文件中指定字段(字符型)的指定内容,如果用户指定的表文件不存在,给予提示信息。【程序】SET TALK OFFCLEARACCEPT“请输入表文件名(带扩展名):” TO FILENAMEACCEPT“请输入要查询的字段名(字符型):” TO FIELDNAMEACCEPT“请输入要查询的内容(字符串):”TO CHARIF (9)(10)BROWSE FOR (11)USE(12)?“指定的表文件不存在!”ENDIFSET TALK ON(9)A.PILE(FILENAME)B.TYPE(“ FILENAME”)C.FILE(“FILENAME”)D.FILE( FILENAME)

使用查询向导不可以创建( )。A.简单的选择查询B.基于一个表或查询的交叉表查询C.操作查询D.查找重复项查询

下列关于查询功能的叙述中,不正确的是( )。A.查询是在一个或多个数据表中,根据用户的需要,从表中提取数据B.查询将符合用户设定条件的数据保存到查询文件中C.在图书管理系统的数据表中,将所有日期已经过了应还日期而未还书的记录保存起来,这个结果就是一个查询D.使用查询得到所需要的数据,当下次需要这方面的数据时,仍然需要到数据表中去搜索

4 寻找热门查询:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,算法,以及算法的复杂度。

在SQL Server 2000中,有教师表Teachers(TeacherID,Name,LeaderID),其中TeacherID是主码,类型是长度为4的普通编码定长字符串,且每位是0~9的数字字符;Name的类型是长度为10的普通编码可变长字符串;LeaderID是每个教师的领导的TeacherID。①写出创建Teachers表的SQL语句,要求语句中包含所有的约束。②现要查询TeacherID为“1234”的教师的领导的TeacherID,请给出相应的SQL语句,要求只使用一条SQL语句实现,且此语句中不允许包含子查询。

搜索引擎会通过日志文件把用户每次检索使用的所有查询串都记录下来,每个查询串的长度不超过255字节。假设目前有一千万个查询记录(重复度比较高,其实互异的查询串不超过三百万个;显然,一个查询串的重复度越高,说明查询它的用户越多,也就是越热门)。现要统计最热门的1 0个查询串,且要求使用的内存不能超过1GB。以下各方法中,可行且效率最高的方法是( )。A.将一千万个查询串存入数组并进行快速排序,再统计其中每个查询串重复的次数B.将一千万个查询串存入数组并进行堆排序,再统计其中每个查询串重复的次数C.利用哈希表保存所有的查询串并记下每个查询串的重复次数,再利用小根堆选出重复次数最多的1 0个查询串D.利用哈希表保存所有的查询串并记下每个查询串的重复次数,再利用大根堆选出重复次数最多的1 0个查询串

SQL查询就是用户使用SQL语句来创建的一种查询。SQL查询主要包括联合查询、传递查询、__________和子查询等。

公安搜索引擎系统为广大民警提供网页信息的检索查询,并可以为案件串并和业务专题分析提供技术支持。

使用Request对象的QueryString集合可以检索HTTP查询字符串中变量的值。

根据用户的查询在索引库中快速检索出文档,进行文档与查询的相关度评价是搜索引擎中的()

关于原生SQL查询和命名查询,说法正确的是()。A、执行原生SQL,需使用SQLQuery对象B、SQLQuery是一个接口,继承了Query接口C、Hibernate支持在映射文件中定义字符串形式的查询语句,这样的语句是命名查询语句D、命名查询语句只能是HQL语句,不能是SQL语句

使用哪个方法,用户发送的表单数据输入作为URL中的查询字符串传递给服务器()。A、GET方法B、HEAD方法C、PUT方法D、POST方法

下列关于字符串的描叙中错误的是()。A、字符串是对象B、String对象存储字符串的效率比StringBuffer高C、可以使用StringBuffer sb="这里是字符串"声明并初始化StringBuffer对象sbD、String类提供了许多用来操作字符串的方法:连接,提取,查询等

下列表示查询说法错误的是:()A、参数查询是指在查询中要输入查询参数B、在参数查询中可以不运用Parameters参数集合和Parameter参数对象C、利用查询就是把放在ASP中的SQL语句事先写在数据库的查询中,加快查询操作的速度。D、使用Command对象的Execute方法可执行在对象的CommandText属性中指定的查询。

当HTML表单用()方法向ASP文件传递数据时,用户提交的数据将附在URL的查询字符串中一起被提交到服务器端指定的文件中。

给出了如下的查询条件字符串String condition="insert book values(?,?,?,?,?)";下列哪个接口适合执行该SQL查询()。A、StatementB、PrepareStatementC、CallableStatement

查询字符串是附加在网页URL后从()开始直到结尾的一串字符。A、?B、/C、@D、\

判断题使用Request对象的QueryString集合可以检索HTTP查询字符串中变量的值。A对B错

多选题关于原生SQL查询和命名查询,说法正确的是()。A执行原生SQL,需使用SQLQuery对象BSQLQuery是一个接口,继承了Query接口CHibernate支持在映射文件中定义字符串形式的查询语句,这样的语句是命名查询语句D命名查询语句只能是HQL语句,不能是SQL语句

单选题关于HTTP查询字符串,下面说法错误的是:()A使用Request对象的Query String集合可检索HTTP查询字符串中变量的值B当通过HTML表单提交数据时,若将表单的METHOD属性设置为POST,则表单数据将附加在查询字符串中被发送到服务器端C使用A标记创建超级链接时,可以将查询字符串放在URL后面,并使用“?”来分隔URL与查询字符串D若要通过查询字符串发送多个变量,应使用“”符号分隔各个变量

单选题关于HTTP查询字符串,下列说法错误的是:()A使用Request对象的QueryString集合可以检索HTTP查询字符串中变量的值B当通过HTML表单提交数据时,若将表单的METHOD属性设置为POST,则表单数据将附加在查询字符串中被发送到服务器端C使用A标记创建超级链接时,可以将查询字符串放在URL后面,并使用“?”来分隔URL与查询字符串D若要通过查询字符串发送多个变量,应使用“”符号分隔各个变量

多选题下列关于字符串的描叙中错误的是()。A字符串是对象BString对象存储字符串的效率比StringBuffer高C可以使用StringBuffer sb=这里是字符串声明并初始化StringBuffer对象sbDString类提供了许多用来操作字符串的方法:连接,提取,查询等

单选题下列表示查询说法错误的是:()A参数查询是指在查询中要输入查询参数B在参数查询中可以不运用Parameters参数集合和Parameter参数对象C利用查询就是把放在ASP中的SQL语句事先写在数据库的查询中,加快查询操作的速度。D使用Command对象的Execute方法可执行在对象的CommandText属性中指定的查询。

填空题根据用户的查询在索引库中快速检索出文档,进行文档与查询的相关度评价是搜索引擎中的()

单选题给出了如下的查询条件字符串String condition="insert book values(?,?,?,?,?)";下列哪个接口适合执行该SQL查询()。AStatementBPrepareStatementCCallableStatement