现有n 个乱序数,都大于 1000 ,让取排行榜前十,时间复杂度为o(n), top10, 或者 topK,应用场景榜单Top:10

Posted c_G-17

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了现有n 个乱序数,都大于 1000 ,让取排行榜前十,时间复杂度为o(n), top10, 或者 topK,应用场景榜单Top:10相关的知识,希望对你有一定的参考价值。

一、topK python实现
def topk(k, lst):
    top = [0 for i in range(k)] #生成一个长度为K 的有序列表
    for item in lst: #循环将要取 排行榜的列表
        for i in range(k-1,-1, -1):
            if item > top[i]: #在top 表中找到他的位置并插入
                top.insert(i+1,item)
                top.pop(0)  #删除值最小 索引为0的元素
                break  #找到了就打断

    print(top)
    return top

import random
lst = [i for i in range(100)]
random.shuffle(lst) #打乱列表
print(lst)

topk(10,lst)

# 运行结果:
[73, 63, 1, ......, 57, 9, 16, 85...... 40, 20, 97,... 84, 76, 87, 22, ......, 65, 93]
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

以上是关于现有n 个乱序数,都大于 1000 ,让取排行榜前十,时间复杂度为o(n), top10, 或者 topK,应用场景榜单Top:10的主要内容,如果未能解决你的问题,请参考以下文章

现在给你个乱序的1到n排列,请你计算需要操作多少次才可以使得原序列从小到大

有 10 万个乱序的数,如何取前 5 个最大(或最小)的数?丨堆排序链表实现局部排序

FMEA中风险顺序数(RPN值)大于多少需要制订整改措施?有说100的,是美国公司的规定么?

1、FMEA中RPN值的R、P、N分别代表啥? 2、RPN就是风险序数吗?

topK问题

车站分级