`
Kingson_Wu
  • 浏览: 119573 次
文章分类
社区版块
存档分类
最新评论

最热门的K个搜索串

 
阅读更多
11073 最热门的K个搜索串
时间限制:350MS 内存限制:65535K 提交次数:0 通过次数:0
语言: not limited
描述
大家都非常喜欢而习惯用baidu,google,sogou等搜索引擎来搜索自己感兴趣的资料。
搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。
假设目前有一百万个记录(这些查询串的重复度比较高,除去重复后会少很多)。
搜索引擎统计查询串的重复频度,一个查询串的重复频度越高,说明查询它的用户越多,也就是越热门。
希望能找到最热门的10个或100个查询串。
现在问题模型是:一个无序的整数数列,数列元素个数为N,1000<=N<=1000000,
如何选出其中最大的K个数,K远小于N(K<<N, K<1000),
比如Top10的数,或Top100的数等。本意并不要求选出的这K个数有序,也不要求剩余的N-K个数有序。
但最终输出为便于评判,还是要求排序的,具体看如下说明(3)。
说明:
(1)虽然此题N较大,还是可以一次性将整数数列导入内存的。
(2)此题认为N较大,不适合对所有元素排序后取得“最大的K个数”,
此排序法复杂度O(NlogN),请你勿用此法,否则将判超时。请选用低于O(NlogN)阶的算法来做。
(3)此题原本是不要求选出的K个数有序,但为了在本OJ(Oline Judge)系统上便于评判,
还是请您排一下序吧,从大至小的不增顺序,因为K远小于N,对K个数排序代价O(KlogK)对N来说可以忽略。
11
输入格式
输入:两行,第一行N和K,第二行为N个无序整数
输出格式
输出:这N个无序整数的最大的K个数
输入样例
20 6
9 1 2 5 3 2 3 4 10 7 1 5 7 6 4 8 9 6 7 5
输出样例
10 9 9 8 7 7

12



---------------------------------------------------

11073 最热门的K个搜索串(递归、分治)

�������

#include<stdio.h>

#include"malloc.h"

intmain()

{

intn,k,i,j,temp,*p;

scanf("%d%d",&n,&k);

p=(int*)malloc(n*sizeof(int));

for(i=0;i<n;i++)

{

scanf("%d",p+i);

}

for(j=0;j<k;j++)

for(i=j+1;i<n;i++)

{

if(p[i]>p[j])

{temp=p[j];p[j]=p[i];p[i]=temp;}

}

for(i=0;i<k;i++)

{

printf("%d",p[i]);

}

printf("\n");

return0;

}




分享到:
评论

相关推荐

    数据结构和算法:字符串

    首先,字符串循环左移问题是指将一个字符串S的前k个字符移动到字符串的尾部,例如字符串“abcdef”前两个字符“ab”移动到尾部后得到新字符串“cdefab”。这个问题有多种解决方法,其中一种是暴力移位法,即每次循环...

    字符串k_串匹配_K._算法_

    字符串匹配是计算机科学中一个基础且重要的问题,它在数据搜索、文本处理、生物信息学等领域有着广泛应用。KMP(Knuth-Morris-Pratt)算法是一种高效的字符串匹配算法,由D.E. Knuth、V.R. Morris和J.H. Pratt在1970...

    delphi计算两个字符串相似度源码 Levenshtein算法版

    例如,将字符串"Kitten"转换为" Sitting"需要3次操作:将"K"替换为"S",将"e"替换为"g",并在末尾插入字符"t"。因此,这两个字符串的Levenshtein距离是3。 在Delphi中,我们可以通过创建一个二维数组来实现...

    典型的Top K算法 找出一个数组里面前K个最大数.doc

    在这个问题中,我们需要在一个数组中找到前K个最大数,例如在搜索引擎中,需要找出最热门的10个查询串。下面我们将详细地介绍Top K算法的解决方案。 哈希表 哈希表(Hash table,也叫散列表),是根据关键码值(Key...

    匹配算法之KMP.docx

    2. 如果p[k] ≠ p[j],模式串的第k个字符与第j个字符不同,我们需要找到模式串中一个前缀与p[j-k+1]...p[j-1]相匹配的最长后缀,即找到next[k]。然后比较p[k]和p[j],如果相等,next[j+1] = next[k] + 1;如果不等,...

    基于GPU实现允许k-差别近似串匹配并行算法.pdf

    在串匹配算法中,k-差别近似串匹配是一种常用的近似串匹配算法,能够高效地搜索和匹配串。 GPU(Graphics Processing Unit,图形处理单元)是一种高性能的计算硬件,能够高效地执行大量的并行计算任务。随着CUDA和...

    K-shingle算法实现

    K-shingle(K-gram或K-length subsequence)是指从一个字符串中取出的所有长度为K的连续子串,这些子串被称为K-shingles。例如,对于字符串"abcde",当K=2时,生成的2-shingles为{"ab", "bc", "cd", "de"}。K值的...

    基于压缩后缀数组实现的一个字符串搜索库

    本文将深入探讨一个基于压缩后缀数组实现的字符串搜索库,分析其设计思想和实现细节。 压缩后缀数组是后缀数组的一种优化形式,它通过压缩技术减少存储空间的需求,同时保持高效查询性能。传统后缀数组是所有输入...

    数据结构-字符串.pptx

    1. **字符串循环左移**:这是一个常见的字符串操作,要求将字符串的前k个字符移到末尾。例如,字符串"abcdef"循环左移2位变为"cdefab"。实现这个操作的高效方法是在O(n)的时间复杂度和O(1)的空间复杂度内完成。暴力...

    串口抓包工具

    串口通信是计算机硬件...综上所述,"仰邦5(M)K二次开发串口抓包工具"是一个强大的辅助工具,对于串口通信的开发、测试和维护工作具有重要的价值。通过细致的使用和分析,我们可以有效地提升串口通信的质量和可靠性。

    近似串匹配的动态规划算法

    近似串匹配是一种在文本处理中常见的技术,用于查找一个字符串(目标串)在另一个大字符串(模式串)中出现的相似子串。在实际应用中,如搜索引擎、基因序列比对、数据清洗等,近似串匹配具有广泛的应用价值。动态...

    ASP源码—K风网页搜索引擎系统K-PageSearch Engine v2.2 SP4.zip

    3. **查询处理器**:当用户提交搜索请求后,查询处理器会解析查询字符串,与索引数据库进行匹配,并返回最相关的网页。这部分源码可能涉及SQL查询优化和排序算法。 4. **结果展示**:搜索结果通常按照相关性排序...

    MyString——关于串的几个基本算法

    1. **线性查找**:是最简单的查找方法,从字符串的第一个字符开始逐个比较,直到找到目标字符或搜索完整个字符串。虽然简单,但效率较低,时间复杂度为O(n)。 2. **KMP算法**:Knuth-Morris-Pratt(KMP)算法是一种...

    计算两个字符串的编辑距离 -- 快速算法

    例如,将字符串"Kitten"转换成" Sitting"需要3次操作:替换"K"为"S",替换"e"为"g",并在末尾插入"ing"。 快速算法实现: 经典的动态规划方法可以解决编辑距离问题,但时间复杂度为O(m * n)。为了提高效率,可以...

    请用指针数组的方法将字符串排序

    在IT领域,特别是编程技术中,使用指针数组对字符串进行排序是一个常见且实用的技巧。根据提供的代码示例,我们可以深入探讨这一知识点,包括其原理、实现过程以及实际应用。 ### 使用指针数组对字符串排序的原理 ...

    字符串处理算法

    Rabin-Karp算法是Hash算法在字符串处理中的一个典型应用,它利用了字符串和k进制数的对应关系来实现快速字符串匹配。Rabin-Karp算法特别适用于字符串长度较短且字符种类有限的情况。在Java中,HashMap是一个重要的...

    提高P2P下top-k搜索性能的研究

    ### 提高P2P下top-k搜索性能的研究 #### P2P网络概述 P2P(Peer-to-Peer,对等网络)是一种分布式网络模型,其中每个节点(Peer)既是服务提供者也是服务消费者。与传统的客户端/服务器模型相比,P2P网络中的节点...

    求字符串子串的KMP 算法

    KMP 算法概述 KMP 算法是一种高效的字符串匹配算法,由 D.E.Knuth、J.H.Morris 和 V.R....在实际应用中,KMP 算法广泛应用于字符串匹配、文本搜索等领域。该算法的高效性和可靠性使其成为一种常用的字符串匹配算法。

    仿662k网址导航源码

    为了提高用户体验和SEO友好性,源码可能会包含URL重写机制,如使用Apache的mod_rewrite模块,将复杂的查询字符串转换为更易读的URL格式。 7. **广告管理** 网址导航站通常会包含广告位,因此源码可能内置了广告...

    串的匹配 串的查找和替换

    特别是在数据挖掘、搜索引擎、自然语言处理等领域中,串的匹配、查找与替换是非常核心的技术之一。本文将详细介绍如何在一篇英文文章中查找并替换特定的单词,并通过一个具体的C++程序示例来阐述这一过程。 #### 二...

Global site tag (gtag.js) - Google Analytics