码迷,mamicode.com
首页 >  
搜索关键字:topk    ( 102个结果
C++100w个数中找出最大的前K个数
#include<iostream>usingnamespacestd;#include<assert.h>constintN=10000;constintK=100;voidAdjustDown(inttopK[],intsize,size_tparent){ assert(topK); intchild=parent*2+1; while(child<size) { if(child+1<size &&topK[child+1]<topK[c..
分类:编程语言   时间:2016-06-02 11:41:58    阅读次数:365
堆的应用(1000个数据中找最大的前K个元素,堆排序)
(1)从1000个数据中找到k个最大数据首先看到这个题时,可能会想到先将这1000个数据进行降序排序,即取出的前k个元素最大。时间复杂度为O(N^2),使得程序效率低。如何解决这个问题呢?我们的堆就派上用场喽!解题思路:可先创建一个数组topK[k],将100w中的前k个数据放入数组topK..
分类:编程语言   时间:2016-05-09 11:09:36    阅读次数:1382
单调旋转数组的TopK问题
问题描述:输入一个单调旋转后的数组,求该数组中的第k小的元素。 分析:很多人看到这个题目会有点懵,可能读者不知道什么是旋转数组,我先解释下两个概念, 旋转数组的定义:把一个数组的前几项元素移动到数组的末尾,称之为数组的旋转。 单调旋转数组的定义:如果数组在旋转之前是一个单调数组,则旋转之后称之为单调 ...
分类:编程语言   时间:2016-05-07 18:00:32    阅读次数:195
基于图的关键词抽取
在关键词抽取研究中,最常用的一种方法就是通过计算一篇文档中词语的TF-IDF值(term frequency-inverse document frequency),并对它们进行排序选取TopK个作为关键词,这是一种无监督的方法。另外一种方法是通过有监督的方法,通过训练学习一个分类器,将关键词抽取问题转化为对每个词语的二分类问题,从而选择出合适的关键词。   无监督和有监督各有各...
分类:其他好文   时间:2016-04-16 19:19:32    阅读次数:317
minheap+hashmap组合解决动态topK问题(附堆排序完整实现)
TopK的解决方法一般有两种:堆排序和partition。前者用优先队列实现,时间复杂度为O(NlogK)(N为元素总数量),后者可以直接调用C++ STL中的nth_element函数,时间复杂度O(N)。如果想获取动态更新数据的topK就不那么容易了,比如实时更新最常访问的top10的网址,显然 ...
分类:编程语言   时间:2016-04-08 06:26:02    阅读次数:262
[经典] 在未排序数组中返回topK大的数
解法一,排序 先从大到小快排,然后扫前K个返回 时间复杂度:O(NlogN),空间复杂度O(1) 解法二,优先队列 前K个放入优先队列中,与最小堆顶元素比较大小,若大于则删除堆顶并插入;否则跳过 时间复杂度:O(NlogK),空间复杂度O(K) 解法三,堆调整 先将数组直接用完全二叉树存储,复杂度O
分类:编程语言   时间:2016-03-03 22:54:38    阅读次数:258
MapReduce TopK问题实际应用
一:背景 TopK问题应该是海量数据处理中应用最广泛的了,比如在海量日志数据处理中,对数据清洗完成之后统计某日访问网站次数最多的前K个IP。这个问题的实现方式并不难,我们完全可以利用MapReduce的Shuffle过程实现排序,然后在Reduce端进行简单的个数判断输出即可。这里还涉及到二次排序,
分类:其他好文   时间:2016-01-31 21:13:00    阅读次数:291
MapReduce TopK问题实际应用
一:背景TopK问题应该是海量数据处理中应用最广泛的了,比如在海量日志数据处理中,对数据清洗完成之后统计某日访问网站次数最多的前K个IP。这个问题的实现方式并不难,我们完全可以利用MapReduce的Shuffle过程实现排序,然后在Reduce端进行简单的个数判断输出即可。这里还涉及到二次排序,不...
分类:其他好文   时间:2015-12-15 14:08:01    阅读次数:216
python 大顶堆 小顶堆
http://www.coder4.com/archives/3844需1求:给出N长的序列,求出TopK大的元素,使用小顶堆,heapq模块实现。import heapqimport randomclass TopkHeap(object): def __init__(self, k): ...
分类:编程语言   时间:2015-11-11 14:36:17    阅读次数:518
topK
最大K个数: 当数据量小时:快排和堆排O(Nlog(N));部分排序(选择or交换)O(N*K) 快排加分治O(N*log(K));二分查找当数据是整数且重复数比较多时:计数排序;若不是整数,则分区间计数。当数据量大时:1)小根堆:O(N*KlogK)2)分治法:hash成M份数据,取每份数据的前K...
分类:其他好文   时间:2015-07-11 22:46:10    阅读次数:194
102条   上一页 1 ... 6 7 8 9 10 11 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!