Current Dir: /snap/core18/2999/usr/lib/python3.6/

[DIR]  asyncio [ delete | rename ]
[DIR]  collections [ delete | rename ]
[DIR]  concurrent [ delete | rename ]
[DIR]  ctypes [ delete | rename ]
[DIR]  curses [ delete | rename ]
[DIR]  dbm [ delete | rename ]
[DIR]  distutils [ delete | rename ]
[DIR]  email [ delete | rename ]
[DIR]  encodings [ delete | rename ]
[DIR]  html [ delete | rename ]
[DIR]  http [ delete | rename ]
[DIR]  importlib [ delete | rename ]
[DIR]  json [ delete | rename ]
[DIR]  lib-dynload [ delete | rename ]
[DIR]  lib2to3 [ delete | rename ]
[DIR]  logging [ delete | rename ]
[DIR]  multiprocessing [ delete | rename ]
[DIR]  pydoc_data [ delete | rename ]
[DIR]  sqlite3 [ delete | rename ]
[DIR]  test [ delete | rename ]
[DIR]  unittest [ delete | rename ]
[DIR]  urllib [ delete | rename ]
[DIR]  venv [ delete | rename ]
[DIR]  wsgiref [ delete | rename ]
[DIR]  xml [ delete | rename ]
[DIR]  xmlrpc [ delete | rename ]
[DIR]  __pycache__ [ delete | rename ]
[FILE] abc.py [ edit | delete | rename ]
[FILE] aifc.py [ edit | delete | rename ]
[FILE] antigravity.py [ edit | delete | rename ]
[FILE] argparse.py [ edit | delete | rename ]
[FILE] ast.py [ edit | delete | rename ]
[FILE] asynchat.py [ edit | delete | rename ]
[FILE] asyncore.py [ edit | delete | rename ]
[FILE] base64.py [ edit | delete | rename ]
[FILE] bdb.py [ edit | delete | rename ]
[FILE] binhex.py [ edit | delete | rename ]
[FILE] bisect.py [ edit | delete | rename ]
[FILE] bz2.py [ edit | delete | rename ]
[FILE] calendar.py [ edit | delete | rename ]
[FILE] cgi.py [ edit | delete | rename ]
[FILE] cgitb.py [ edit | delete | rename ]
[FILE] chunk.py [ edit | delete | rename ]
[FILE] cmd.py [ edit | delete | rename ]
[FILE] code.py [ edit | delete | rename ]
[FILE] codecs.py [ edit | delete | rename ]
[FILE] codeop.py [ edit | delete | rename ]
[FILE] colorsys.py [ edit | delete | rename ]
[FILE] compileall.py [ edit | delete | rename ]
[FILE] configparser.py [ edit | delete | rename ]
[FILE] contextlib.py [ edit | delete | rename ]
[FILE] copy.py [ edit | delete | rename ]
[FILE] copyreg.py [ edit | delete | rename ]
[FILE] cProfile.py [ edit | delete | rename ]
[FILE] crypt.py [ edit | delete | rename ]
[FILE] csv.py [ edit | delete | rename ]
[FILE] datetime.py [ edit | delete | rename ]
[FILE] decimal.py [ edit | delete | rename ]
[FILE] difflib.py [ edit | delete | rename ]
[FILE] dis.py [ edit | delete | rename ]
[FILE] doctest.py [ edit | delete | rename ]
[FILE] dummy_threading.py [ edit | delete | rename ]
[FILE] enum.py [ edit | delete | rename ]
[FILE] filecmp.py [ edit | delete | rename ]
[FILE] fileinput.py [ edit | delete | rename ]
[FILE] fnmatch.py [ edit | delete | rename ]
[FILE] formatter.py [ edit | delete | rename ]
[FILE] fractions.py [ edit | delete | rename ]
[FILE] ftplib.py [ edit | delete | rename ]
[FILE] functools.py [ edit | delete | rename ]
[FILE] genericpath.py [ edit | delete | rename ]
[FILE] getopt.py [ edit | delete | rename ]
[FILE] getpass.py [ edit | delete | rename ]
[FILE] gettext.py [ edit | delete | rename ]
[FILE] glob.py [ edit | delete | rename ]
[FILE] gzip.py [ edit | delete | rename ]
[FILE] hashlib.py [ edit | delete | rename ]
[FILE] heapq.py [ edit | delete | rename ]
[FILE] hmac.py [ edit | delete | rename ]
[FILE] imaplib.py [ edit | delete | rename ]
[FILE] imghdr.py [ edit | delete | rename ]
[FILE] imp.py [ edit | delete | rename ]
[FILE] inspect.py [ edit | delete | rename ]
[FILE] io.py [ edit | delete | rename ]
[FILE] ipaddress.py [ edit | delete | rename ]
[FILE] keyword.py [ edit | delete | rename ]
[FILE] LICENSE.txt [ edit | delete | rename ]
[FILE] linecache.py [ edit | delete | rename ]
[FILE] locale.py [ edit | delete | rename ]
[FILE] lzma.py [ edit | delete | rename ]
[FILE] macpath.py [ edit | delete | rename ]
[FILE] macurl2path.py [ edit | delete | rename ]
[FILE] mailbox.py [ edit | delete | rename ]
[FILE] mailcap.py [ edit | delete | rename ]
[FILE] mimetypes.py [ edit | delete | rename ]
[FILE] modulefinder.py [ edit | delete | rename ]
[FILE] netrc.py [ edit | delete | rename ]
[FILE] nntplib.py [ edit | delete | rename ]
[FILE] ntpath.py [ edit | delete | rename ]
[FILE] nturl2path.py [ edit | delete | rename ]
[FILE] numbers.py [ edit | delete | rename ]
[FILE] opcode.py [ edit | delete | rename ]
[FILE] operator.py [ edit | delete | rename ]
[FILE] optparse.py [ edit | delete | rename ]
[FILE] os.py [ edit | delete | rename ]
[FILE] pathlib.py [ edit | delete | rename ]
[FILE] pdb.py [ edit | delete | rename ]
[FILE] pickle.py [ edit | delete | rename ]
[FILE] pickletools.py [ edit | delete | rename ]
[FILE] pipes.py [ edit | delete | rename ]
[FILE] pkgutil.py [ edit | delete | rename ]
[FILE] platform.py [ edit | delete | rename ]
[FILE] plistlib.py [ edit | delete | rename ]
[FILE] poplib.py [ edit | delete | rename ]
[FILE] posixpath.py [ edit | delete | rename ]
[FILE] pprint.py [ edit | delete | rename ]
[FILE] profile.py [ edit | delete | rename ]
[FILE] pstats.py [ edit | delete | rename ]
[FILE] pty.py [ edit | delete | rename ]
[FILE] pyclbr.py [ edit | delete | rename ]
[FILE] pydoc.py [ edit | delete | rename ]
[FILE] py_compile.py [ edit | delete | rename ]
[FILE] queue.py [ edit | delete | rename ]
[FILE] quopri.py [ edit | delete | rename ]
[FILE] random.py [ edit | delete | rename ]
[FILE] re.py [ edit | delete | rename ]
[FILE] reprlib.py [ edit | delete | rename ]
[FILE] rlcompleter.py [ edit | delete | rename ]
[FILE] runpy.py [ edit | delete | rename ]
[FILE] sched.py [ edit | delete | rename ]
[FILE] secrets.py [ edit | delete | rename ]
[FILE] selectors.py [ edit | delete | rename ]
[FILE] shelve.py [ edit | delete | rename ]
[FILE] shlex.py [ edit | delete | rename ]
[FILE] shutil.py [ edit | delete | rename ]
[FILE] signal.py [ edit | delete | rename ]
[FILE] site.py [ edit | delete | rename ]
[FILE] sitecustomize.py [ edit | delete | rename ]
[FILE] smtpd.py [ edit | delete | rename ]
[FILE] smtplib.py [ edit | delete | rename ]
[FILE] sndhdr.py [ edit | delete | rename ]
[FILE] socket.py [ edit | delete | rename ]
[FILE] socketserver.py [ edit | delete | rename ]
[FILE] sre_compile.py [ edit | delete | rename ]
[FILE] sre_constants.py [ edit | delete | rename ]
[FILE] sre_parse.py [ edit | delete | rename ]
[FILE] ssl.py [ edit | delete | rename ]
[FILE] stat.py [ edit | delete | rename ]
[FILE] statistics.py [ edit | delete | rename ]
[FILE] string.py [ edit | delete | rename ]
[FILE] stringprep.py [ edit | delete | rename ]
[FILE] struct.py [ edit | delete | rename ]
[FILE] subprocess.py [ edit | delete | rename ]
[FILE] sunau.py [ edit | delete | rename ]
[FILE] symbol.py [ edit | delete | rename ]
[FILE] symtable.py [ edit | delete | rename ]
[FILE] sysconfig.py [ edit | delete | rename ]
[FILE] tabnanny.py [ edit | delete | rename ]
[FILE] tarfile.py [ edit | delete | rename ]
[FILE] telnetlib.py [ edit | delete | rename ]
[FILE] tempfile.py [ edit | delete | rename ]
[FILE] textwrap.py [ edit | delete | rename ]
[FILE] this.py [ edit | delete | rename ]
[FILE] threading.py [ edit | delete | rename ]
[FILE] timeit.py [ edit | delete | rename ]
[FILE] token.py [ edit | delete | rename ]
[FILE] tokenize.py [ edit | delete | rename ]
[FILE] trace.py [ edit | delete | rename ]
[FILE] traceback.py [ edit | delete | rename ]
[FILE] tracemalloc.py [ edit | delete | rename ]
[FILE] tty.py [ edit | delete | rename ]
[FILE] turtle.py [ edit | delete | rename ]
[FILE] types.py [ edit | delete | rename ]
[FILE] typing.py [ edit | delete | rename ]
[FILE] uu.py [ edit | delete | rename ]
[FILE] uuid.py [ edit | delete | rename ]
[FILE] warnings.py [ edit | delete | rename ]
[FILE] wave.py [ edit | delete | rename ]
[FILE] weakref.py [ edit | delete | rename ]
[FILE] webbrowser.py [ edit | delete | rename ]
[FILE] xdrlib.py [ edit | delete | rename ]
[FILE] zipapp.py [ edit | delete | rename ]
[FILE] zipfile.py [ edit | delete | rename ]
[FILE] _bootlocale.py [ edit | delete | rename ]
[FILE] _collections_abc.py [ edit | delete | rename ]
[FILE] _compat_pickle.py [ edit | delete | rename ]
[FILE] _compression.py [ edit | delete | rename ]
[FILE] _dummy_thread.py [ edit | delete | rename ]
[FILE] _markupbase.py [ edit | delete | rename ]
[FILE] _osx_support.py [ edit | delete | rename ]
[FILE] _pydecimal.py [ edit | delete | rename ]
[FILE] _pyio.py [ edit | delete | rename ]
[FILE] _sitebuiltins.py [ edit | delete | rename ]
[FILE] _strptime.py [ edit | delete | rename ]
[FILE] _sysconfigdata_m_linux_x86_64-linux-gnu.py [ edit | delete | rename ]
[FILE] _threading_local.py [ edit | delete | rename ]
[FILE] _weakrefset.py [ edit | delete | rename ]
[FILE] __future__.py [ edit | delete | rename ]
[FILE] __phello__.foo.py [ edit | delete | rename ]

Viewing: /snap/core18/2999/usr/lib/python3.6/bisect.py

"""Bisection algorithms."""

def insort_right(a, x, lo=0, hi=None):
    """Insert item x in list a, and keep it sorted assuming a is sorted.

    If x is already in a, insert it to the right of the rightmost x.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    """

    if lo < 0:
        raise ValueError('lo must be non-negative')
    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)

insort = insort_right   # backward compatibility

def bisect_right(a, x, lo=0, hi=None):
    """Return the index where to insert item x in list a, assuming a is sorted.

    The return value i is such that all e in a[:i] have e <= x, and all e in
    a[i:] have e > x.  So if x already appears in the list, a.insert(x) will
    insert just after the rightmost x already there.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    """

    if lo < 0:
        raise ValueError('lo must be non-negative')
    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

bisect = bisect_right   # backward compatibility

def insort_left(a, x, lo=0, hi=None):
    """Insert item x in list a, and keep it sorted assuming a is sorted.

    If x is already in a, insert it to the left of the leftmost x.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    """

    if lo < 0:
        raise ValueError('lo must be non-negative')
    if hi is None:
        hi = len(a)
    while lo < hi:
        mid = (lo+hi)//2
        if a[mid] < x: lo = mid+1
        else: hi = mid
    a.insert(lo, x)


def bisect_left(a, x, lo=0, hi=None):
    """Return the index where to insert item x in list a, assuming a is sorted.

    The return value i is such that all e in a[:i] have e < x, and all e in
    a[i:] have e >= x.  So if x already appears in the list, a.insert(x) will
    insert just before the leftmost x already there.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    """

    if lo < 0:
        raise ValueError('lo must be non-negative')
    if hi is None:
        hi = len(a)
    while lo < hi:
        mid = (lo+hi)//2
        if a[mid] < x: lo = mid+1
        else: hi = mid
    return lo

# Overwrite above definitions with a fast C implementation
try:
    from _bisect import *
except ImportError:
    pass

Upload File: