Python対分
< bisect >バイナリナビゲーションを容易に実施するためのライブラリ 配列で特定の要素を検索する必要がある場合、非常に有効な 最も重要なのは、対の左()および対右()関数 を使用することである.時間複雑度O(logn) 対left(a,x):メソッド は、リストaにデータxを挿入する最も左側のインデックスを検索し、ソート順を維持します.対分right(a,x):メソッド は、リストaにデータxを挿入する最も右側のインデックスを検索して、ソート順を維持します.並べ替えリストでは、 を有効に使用して、特定の範囲に属する要素の数を計算する.
# 정렬된 리스트에 새로운 데이터를 삽입하는 예시
from bisect import bisect_left, bisect_right
a = [1, 2, 4, 4, 8]
x = 4
print('bisect_left index :', bisect_left(a,x))
print('bisect_right index :', bisect_right(a,x))
from bisect import bisect_left, bisect_right
# 값이 [left_value, right_value]인 데이터 개수를 반환하는 함수
def count_by_range(a, left_value, right_value):
right_index = bisect_right(a, right_value)
left_index = bisect_left(a, left_value)
return right_index - left_index
# 리스트 선언
a = [1, 2, 3, 3, 3, 3, 4, 4, 8 ,9]
# 값이 4인 데이터 개수 출력
print(count_by_range(a, 4, 4))
# 값이 [-1, 3] 범위에 있는 데이터 개수 출력
print(count_by_range(a, -1, 3))
Reference
この問題について(Python対分), 我々は、より多くの情報をここで見つけました https://velog.io/@baebae/파이썬-bisectテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol