Best way to merge/sort two sorted lists?...

Neil Cerutti horpner at yahoo.com
Thu Dec 6 14:39:29 EST 2007


On 2007-12-06, Neil Cerutti <horpner at yahoo.com> wrote:
> It should beat ResortEverything consistently once the lists
> become larger than a certain size. Do you get better results at
> all with the above function?

With psyco, my merge_sorted becamse faster than relying on
timsort at roughly 80 elements total. Without psyco it was always
slowest.

Both were much faster than the ASPN imerge recipe--if you built a
list with the result. imerge is wicked fast if you never extract
any values, though. ;-)

Or perhaps I'm just misprofiling. I used:

    a = range(20000)  # e.g
    b = range(17000)

    t = timeit.Timer('merge_sorted(a, b)', 'from __main__ import '
                                           'merge_sorted, a, b')
    t2 = timeit.Timer('merge_sorted2(a, b)', 'from __main__ import '
                                             'merge_sorted2, a, b')
    t3 = timeit.Timer('list(imerge(a, b))', 'from __main__ import imerge, a, b')
    print t.timeit(100)
    print t2.timeit(100)
    print t3.timeit(100)

-- 
Neil Cerutti



More information about the Python-list mailing list