Advertisement
Guest User

K Smallest Elements - Heap v/s Sort

a guest
May 25th, 2019
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.47 KB | None | 0 0
  1. import perfplot
  2. import heapq
  3. import numpy as np
  4.  
  5. key = lambda P: P[0]**2 + P[1]**2
  6.  
  7. def sort(inp):
  8.     l, n = inp
  9.     l = l.copy()
  10.     l.sort(key=key)
  11.     return l[:n]
  12.  
  13. def heap(inp):
  14.     l, n = inp
  15.     return heapq.nsmallest(n, l, key=key)
  16.  
  17. perfplot.show(
  18.     setup=lambda n: (np.random.randint(-n, n, (n, 2)).tolist(), int(n * .2)),
  19.     kernels=[heap, sort],
  20.     labels=['heapq', 'timsort'],
  21.     n_range=[2 ** k for k in range(4, 22)],
  22.     xlabel='N',
  23. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement