mirror of
https://github.com/python/cpython
synced 2024-11-05 18:12:54 +00:00
4acc25bd39
1. Comments at the beginning of the module, before functions, and before classes have been turned into docstrings. 2. Tabs are normalized to four spaces. Also, removed the "remove" function from dircmp.py, which reimplements list.remove() (it must have been very old).
23 lines
567 B
Python
23 lines
567 B
Python
"""Bisection algorithms."""
|
|
|
|
|
|
def insort(a, x, lo=0, hi=None):
|
|
"""Insert item x in list a, and keep it sorted assuming a is sorted."""
|
|
if hi is None:
|
|
hi = len(a)
|
|
while lo < hi:
|
|
mid = (lo+hi)/2
|
|
if x < a[mid]: hi = mid
|
|
else: lo = mid+1
|
|
a.insert(lo, x)
|
|
|
|
|
|
def bisect(a, x, lo=0, hi=None):
|
|
"""Find the index where to insert item x in list a, assuming a is sorted."""
|
|
if hi is None:
|
|
hi = len(a)
|
|
while lo < hi:
|
|
mid = (lo+hi)/2
|
|
if x < a[mid]: hi = mid
|
|
else: lo = mid+1
|
|
return lo
|