heapq 对有序的数组列表进行整体排序

heapq 对有序的数组列表进行整体排序,第1张

概述  """功能:实现对有序的多个数组整体排序,获取top k个最小元素"""from heapq import *def heap_sort(arr, top_k): q = [] for i in range(len(arr)): heappush(q, (arr[i][0], i, 0)) result = []

 

"""功能:实现对有序的多个数组整体排序,获取top k个最小元素"""from heapq import *def heap_sort(arr,top_k):    q = []    for i in range(len(arr)):        heappush(q,(arr[i][0],i,0))    result = []    for k in range(top_k):        if q:            data,index,i = heappop(q)            result.append(data)            if i+1 < len(arr[index]):                heappush(q,(arr[index][i+1],i+1))    return resultdef test_heap_sort():    print(heap_sort(arr=[[1,3,4,9,80,799],[0,6,8,12,999],[123,345,987]],top_k=10))    print(heap_sort(arr=[[1,top_k=3))    print(heap_sort(arr=[[1,799]],top_k=0))if __name__ == "__main__":    test_heap_sort()
总结

以上是内存溢出为你收集整理的heapq 对有序的数组列表进行整体排序全部内容,希望文章能够帮你解决heapq 对有序的数组列表进行整体排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1191264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存