top k

解法一

最简单的,多次循环

var smallestK = function(arr, k) {
    let tempArr = [], i = 0;
    while(k--) {
        let temp = arr[0], tempIndex = 0, len = arr.length;
        arr.forEach((item, index) => {
            if(item < temp ) {
                temp = item;
                tempIndex = index;
            }
        })
        tempArr[i] = temp;
        i++;
        arr.splice(tempIndex, 1)
    }
    return tempArr
};

解法二:
快速排序

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •    在大规模数据处理中,经常会遇到的一类问题:在海量数据中找出出现频率最高的前k个数,或者从海量数据中找出最大的...
    async丶阅读 1,624评论 0 2
  • Top K问题应该是当前互联网中非常普遍的应用场景了,如搜索引擎的热门关键字排序,电商网站的热销商品排序等。由于互...
    吃猫的老鼠阅读 604评论 1 2
  • Top K算法 问题描述: 从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题。 栗子: ...
    昂迪梵德阅读 726评论 0 0
  • 1、直接全部排序(只适用于内存够的情况)当数据量较小的情况下,内存中可以容纳所有数据。则最简单也是最容易想到的方法...
    我的技术学习小站阅读 170评论 0 0
  • 快速排序,堆排序和 问题一直都是非常经典的算法知识点。并且他们在原理和算法思想上有相通的部分。这篇文章会简要复习...
    dyume阅读 991评论 1 0