mirror of
https://github.com/python/cpython.git
synced 2024-11-27 11:55:13 +08: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).
24 lines
567 B
Python
24 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
|