/Lib/bisect.py (7732c639e38699d6354ea87cc86549434f076635) (2557 bytes) (mode 100644) (type blob)
"""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)
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
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
# Create aliases
bisect = bisect_right
insort = insort_right
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
582 |
58471109208922c9ee8c4b06135725f03ed16814 |
.bzrignore |
100644 |
blob |
545 |
fcf9df6a7a698e4bd87ed0c1cc4ed70bad8b9887 |
.codecov.yml |
100644 |
blob |
255 |
82694d81f276b2c59a0a93a4f678e1852e625052 |
.gitattributes |
040000 |
tree |
- |
7e849e161267e730810fbbe6a848b14d5d002788 |
.github |
100644 |
blob |
1397 |
8b54c2c4861389f6e8bbfbab5ae0c8b6bbbad041 |
.gitignore |
100644 |
blob |
1060 |
eb19a6c88d28d05588db25d21525ee2e19c22666 |
.hgeol |
100644 |
blob |
1358 |
68c607f2e8d420c8dfd0748efcd3b3b5447def16 |
.hgignore |
100644 |
blob |
8917 |
8f51c2ced49aed46d8b480280b630ea4264c57c3 |
.hgtags |
100644 |
blob |
1328 |
b9be0f11fdb829f16e9de1921257eb7ee45fac57 |
.hgtouch |
100644 |
blob |
248 |
0614a299b6221dc7faedaa9139ae8b034e618a85 |
.mention-bot |
100644 |
blob |
3512 |
e7e8694530ca21a6d7a19da3fab687a3e9d79e9c |
.travis.yml |
040000 |
tree |
- |
ab6ef0c3da91d215c813859260aa9d0724504633 |
Doc |
040000 |
tree |
- |
5dd6fc9dc09374506491247872c868eca111e256 |
Grammar |
040000 |
tree |
- |
df0de9d4359f11311c74fd0dbad471bb2613a2d4 |
Include |
100644 |
blob |
12773 |
f5d0b39a0cdddb91a31a537052b7d8d31a4aa79f |
LICENSE |
040000 |
tree |
- |
35e9c80068a1b6441f6a676002e031d908be567f |
Lib |
040000 |
tree |
- |
1db7415d4375525eaf8d05ddd5b088de3321041c |
Mac |
100644 |
blob |
58983 |
4145634c032d543d02295bd2c28a0c6ce839fa86 |
Makefile.pre.in |
040000 |
tree |
- |
6854ababa88443950a60516508b6994cfd8888db |
Misc |
040000 |
tree |
- |
92e4f07c6b277cc3dae87514f9cebce860ec55ba |
Modules |
040000 |
tree |
- |
cec92311ba9c836d7f68a2d6e24b27e8287ac690 |
Objects |
040000 |
tree |
- |
ed4f35810e9633502c16ae038c2ce697d3987201 |
PC |
040000 |
tree |
- |
37a613ac0022a9cfefaf3f13913fec7debe59259 |
PCbuild |
040000 |
tree |
- |
bfcd1ca2e85b8724b1b7be4e0673b90220a04e7c |
Parser |
040000 |
tree |
- |
3efbcc80237ab7c3d4eb5bf31c893ca6de88e747 |
Programs |
040000 |
tree |
- |
8f832869b53d99ee02d78ea0cc8491d3882222da |
Python |
100644 |
blob |
9325 |
9c95815d9e9d91b8dae8e05d8bbc696fe19f796b |
README.rst |
040000 |
tree |
- |
66b8a7e032e5538a9a2e08422da3716c50e91a4b |
Tools |
100644 |
blob |
10910 |
9a9cc557281571f0d46c506c0e9d1b9fb25e063c |
aclocal.m4 |
100755 |
blob |
42856 |
1f5c50c0d1529d50b94dc3533ca72a47f0fa5849 |
config.guess |
100755 |
blob |
35740 |
d654d03cdcd2226a5d7584890717e674a8122f4f |
config.sub |
100755 |
blob |
485283 |
87504d206837baf5a5781b6e1cc44dcce7138af9 |
configure |
100644 |
blob |
160661 |
f9bd92ce3da29ea7674a32bd5fe511b1fc4c4d0a |
configure.ac |
100755 |
blob |
7122 |
0ec27bcd488da5cad6ead13d70accbdbc40d31ef |
install-sh |
100644 |
blob |
41449 |
21354a5cb84fe5530dd0d460561ba95569abe1d4 |
pyconfig.h.in |
100644 |
blob |
98743 |
3b3d097454211c790c1602d759918bb65a622c97 |
setup.py |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/benf_wspdigital/cpython
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/benf_wspdigital/cpython
Clone this repository using git:
git clone git://git.rocketgit.com/user/benf_wspdigital/cpython
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main