#coding=utf-8
## generate random numbers
from random import randint
# low and high limit of the numbers of the random number
low = -10000000
high = 10000000
low_big = 100000000
high_big = 200000000
# total_number of the numbers
total_number = 10000
#total_number = 100
# the number of beggest number we need
max_number = 100
# max_number = 5
# use () for [] will be more efficient ?
# numbers = [randint(low,high) for elem in xrange(total_number)]
numbers_small = [randint(low,high) for elem in xrange(total_number-max_number)]
numbers_big = [randint(low_big, high_big) for elem2 in range(max_number)]
numbers = numbers_small + numbers_big
#print numbers
from heapq import heapify, heapreplace
max_number_heap = numbers[:max_number] # [100,2,300,4,50]
heapify(max_number_heap)
#print max_number_heap
for num in xrange(max_number,total_number):
data = numbers[num]
if data > max_number_heap[0]:
heapreplace(max_number_heap, data)
print \'result\',max_number_heap
max_number_heap.sort()
numbers_big.sort()
if cmp(max_number_heap,numbers_big) == 0:
print \'this algorithm works exactly right\'
继续阅读与本文标签相同的文章
CRM软件排名:好用的CRM系统
-
最新115道华为、京东、滴滴、美团精选Java面试题整理
2026-05-18栏目: 教程
-
吴伯凡:谁在重新定义我们的城市
2026-05-18栏目: 教程
-
阿里巴巴集团副总裁郭继军:智慧城市建设如何不变成房地产项目
2026-05-18栏目: 教程
-
阿里云RDS for SQL Server购买使用流程
2026-05-18栏目: 教程
-
阿里云智能战略与合作部刘湘雯:阿里关于创新创业服务的思考
2026-05-18栏目: 教程
