大数据下的TopK算法

       在大数据背景下,TopK问题是一个很常见的问题。常见到这类问题基本在任何从事大数据相关的工作中都会用到。而我以前面试和大数据相关的岗位时也基本每次都会被问及这一问题或者这一问题的简单变种。因此,写本文详细介绍一下在大数据背景下TopK问题的解决方法,供大伙学习学习,尤其是让即将面临找工作面试的同学在面对这类问题时心里有个底。

       该问题的求解目标很简单,即从一堆数据中挑出权值最大的K个数据。不同的是,在大数据背景下,这堆数据非常庞大,无法将这些数据装入内存中。因此,一部分方法就无法使用,比如基于冒泡排序的方法从逐个挑出个最大值,该方法由于复杂度太高无法被采用;而基于快排TopK算法寻找第大的权值虽然方法十分巧妙,而且达到了最快的线性复杂度,但该算法要求加载所有数据到内存,这在大数据背景下并不现实。

       在大数据背景下,最适合用来处理TopK问题的方法是采用基于最小堆实现的方法。因此,本文将就该方法展开介绍。

       更多信息,参见作者个人主页Jianping Cai's Research Page。

大数据下的TopK算法_第1张图片

大数据下的TopK算法_第2张图片

大数据下的TopK算法_第3张图片

你可能感兴趣的:(数学,算法,大数据)