にぶんたんさく
7066 ワード
Binary search
位置合わせ要素の中間値に基づいて、検索する値とサイズを比較し、ナビゲーション区間を調整し、ターゲットに再ナビゲートします.def binary_search(arr, target, start, end):
while start <= end:
mid = (start + end) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
end = mid - 1
else:
start = mid + 1
return None
n, target = list(map(int, input().split()))
arr = list(map(int, input().split()))
result = binary_search(arr, target, 0, n-1)
if result == None:
print('원소없음')
else:
print(result + 1)
パラメトリックサーチ
2点を適用して最高価格または最低価格を検索するテクニック
パラメータ検索は、最適化された問題を決定問題(YesまたはNo)に変換して解決する方法です.
例:特定の条件を満たす最適値の最適化の問題をすばやく検索
一般に,符号化試験ではパラメータ探索問題はバイナリ探索により解決できる.
https://youtu.be/Rr5gMFm588M
たいぶんこ
この探索を簡潔に体現できるライブラリです.
対分()とinsort()が主な機能のようです.
たいぶんかんすう
import bisect
result = bisect.bisect([10,20,30,40],int(input()))
print(result)
입력
35
출력
3
スコアリング・ライブラリ内のスコアリング・メソッドには、ソート・リストと整数を受け入れます.
入力した整数は、リストにソート可能なインデックスを返します.
使いやすい問題https://www.acmicpc.net/problem/19637
insort関数
import bisect
a = [10,20,30,40]
bisect.insort(a,int(input()))
print(a)
입력
25
출력
[10,20,25,30,40]
ソートリストと整数を入力するとinsort関数が表示されます.
入力した整数をリストのソート位置に追加します.
条件に応じて、対分left()またはinsort left()を使用します.
リファレンスサイト
Reference
この問題について(にぶんたんさく), 我々は、より多くの情報をここで見つけました
https://velog.io/@mauserne/이분탐색
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def binary_search(arr, target, start, end):
while start <= end:
mid = (start + end) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
end = mid - 1
else:
start = mid + 1
return None
n, target = list(map(int, input().split()))
arr = list(map(int, input().split()))
result = binary_search(arr, target, 0, n-1)
if result == None:
print('원소없음')
else:
print(result + 1)
import bisect
result = bisect.bisect([10,20,30,40],int(input()))
print(result)
입력
35
출력
3
import bisect
a = [10,20,30,40]
bisect.insort(a,int(input()))
print(a)
입력
25
출력
[10,20,25,30,40]
Reference
この問題について(にぶんたんさく), 我々は、より多くの情報をここで見つけました https://velog.io/@mauserne/이분탐색テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol