【发布时间】:2010-11-12 14:07:41
【问题描述】:
我有一堆排序的对象列表和一个比较函数
class Obj :
def __init__(p) :
self.points = p
def cmp(a, b) :
return a.points < b.points
a = [Obj(1), Obj(3), Obj(8), ...]
b = [Obj(1), Obj(2), Obj(3), ...]
c = [Obj(100), Obj(300), Obj(800), ...]
result = magic(a, b, c)
assert result == [Obj(1), Obj(1), Obj(2), Obj(3), Obj(3), Obj(8), ...]
magic 看起来像什么?我目前的实现是
def magic(*args) :
r = []
for a in args : r += a
return sorted(r, cmp)
但那是相当低效的。更好的答案?
【问题讨论】:
-
这些列表有多大?花了多少时间对它们进行分类?在优化之前(和之后)进行衡量。
标签: python arrays merge sorting