首页 > 其他分享 >海量数字topK

海量数字topK

时间:2022-09-22 22:13:56浏览次数:44  
标签:heapq 数字 nums 海量 random range topK heap import

import random
import heapq

n = 100
k = 10
nums = [i for i in range(n)]
random.shuffle(nums)
def topk(nums, k):
    heap = []
    for i in range(k):
        heapq.heappush(heap, nums[i])
    for i in range(k, n):
        if nums[i] > heap[0]:
            heapq.heappop(heap)
            heapq.heappush(heap, nums[i])
    return heap
print(topk(nums, k))

求最大的k个数当然用最小堆,因为要拿到最小的哪个值
时间复杂度:建堆klogk, 插入n*logk

标签:heapq,数字,nums,海量,random,range,topK,heap,import
From: https://www.cnblogs.com/bernieloveslife/p/16721015.html

相关文章

  • 浙江省一体化数字资源配置仓库
    gitssh密钥生成输入gitconfig--globaluser.name"youname"全局设置用户名,输入gitconfig--globaluser.email"[email protected]"全局设置邮箱可以参考这里https://blog......
  • 数字ic手撕代码-边沿检测(上升沿、下降沿、双边沿)
    边沿检测        在使用FIFO进行数据读写的时候,我们会用到边沿检测,比如当FIFO内的数据被读空了,这样empty信号就会从0→1,产生一个上升沿,当这个上升沿到来的时候......
  • 报告分享|交易银行产业数字生态下的客户经营之战
    全文链接:http://tecdat.cn/?p=28657对公业务一直是中国银行业的半壁江山。但在过去的5年间,传统的抓大户、重投放、重息差的粗放发展模式,面对复杂的宏观经济形势和趋严的监......
  • 报告分享|2022虚拟数字人综合评估指数报告
    报告链接:http://tecdat.cn/?p=28655报告指出,随着互联网软硬件技术发展逐步成熟,在“元宇宙”概念成为热点的同时,虚拟数字人产业也进入“爆发期”。但无论从技术整合、场景......
  • 数字IC手撕代码-分频器(任意奇数分频)
    大家好我是酸菜鱼,这个系列着重讲解数字ic或FPGA实习面试及秋招面试的高频手撕代码题。什么是分频    分频就是生成一个新时钟,该新时钟的频率是原有时钟频率......
  • 数字IC手撕代码-分频器(任意小数分频)
    什么是分频    分频就是生成一个新时钟,该新时钟的频率是原有时钟频率的整数分之一倍,新周期是原有周期的整数倍。        再简单来说,让你手撕一个四分频......
  • 数字IC手撕代码-序列检测(移位寄存器写法)
    大家好我是酸菜鱼,这个系列着重讲解数字ic或FPGA实习面试及秋招面试的高频手撕代码题。本文具体内容涉及:利用移位寄存器写序列检测。        一说到序列检测,你脑......
  • 数字IC手撕代码-序列检测(状态机写法)
    大家好我是酸菜鱼,这个系列着重讲解数字ic或FPGA实习面试及秋招面试的高频手撕代码题 具体内容涉及:        一说到序列检测,你脑子里要立马跳出两种解法,一种是状......
  • 电源地、模拟地、数字地
     电路板设计时直流电源地、模拟地、数字地如何区分?如何共地?发布时间:2016-05-2311:19 阅读:917 来源:技术文章责任编辑:深圳宏力捷PCB设计部电路板设计时直流电......
  • 图像处理学习笔记-02-数字图像基础
    第一节简述人类视觉系统的一些重要方面,包括人眼中图像的生成及人眼适应和辨认灰度的一些能力,第二节讨论光、电磁波谱的其他分量及他们的成像特点,第三节讨论成像传感器及如......