annotate ch3ex3.py @ 24:5c2c4ce095ef

A stab at the L(p)/L(0) plot. I still don't quite get how the graphs in the Watts and Strogatz paper were generated. My results have basically the same shape, but don't converge to 0. I'm not sure how this is possible if the rewire function does not remove edges.
author Brian Neal <bgneal@gmail.com>
date Thu, 03 Jan 2013 18:41:13 -0600
parents 0f98bcb5bd3f
children cfb7f28678c7
rev   line source
bgneal@11 1 """Chaper 3.3, exercise 3.
bgneal@11 2
bgneal@11 3 Write a function called bisection that takes a sorted list and a target value
bgneal@11 4 and returns the index of the value in the list if it's there, or None if it's
bgneal@11 5 not.
bgneal@11 6
bgneal@11 7 """
bgneal@11 8
bgneal@11 9 def bisection(a, item):
bgneal@11 10 """Returns the index of item in the sorted list a if it exists or None if
bgneal@11 11 not.
bgneal@11 12
bgneal@11 13 Finds the "rightmost" item if it exists.
bgneal@11 14
bgneal@11 15 """
bgneal@11 16 lo = 0
bgneal@11 17 hi = len(a)
bgneal@11 18
bgneal@11 19 while lo < hi:
bgneal@11 20 mid = (lo + hi) // 2
bgneal@11 21 if item < a[mid]:
bgneal@11 22 hi = mid
bgneal@11 23 else:
bgneal@11 24 lo = mid + 1
bgneal@11 25
bgneal@11 26 n = lo - 1
bgneal@11 27 return a[n] if n >= 0 and a[n] == item else None