title: Why bisect slower than sort
body: <p>I know that bisect is using binary search to keep lists sorted. However I did a timing test that the values are being read and sorted. But, on the contrary to my knowledge, keeping the values and then sorting them win the timing by high difference. Could more experienced users please explain this behavior ? Here is the code I use to test the timings.</p>
  
  <pre><code>import timeit
  
  setup = """
  import random
  import bisect
  a = range(100000)
  random.shuffle(a)
  """
  
  p1 = """
  b = []
  for i in a:
      b.append(i)
  b.sort()
  """
  
  p2 = """
  b = []
  for i in a:
      bisect.insort(b, i)
  """
  
  print timeit.timeit(p1, setup=setup, number = 1)
  print timeit.timeit(p2, setup=setup, number = 1)
  
  # 0.0593081859178
  # 1.69218442959
  # Huge difference ! 35x faster.
  </code></pre>
  
  <p>In the first process I take values one-by-one instead of just sorting <code>a</code> to obtain a behavior like file reading. And it beats bisect very hard.</p>