2011,217開発ログ(10日目)-Python input()とsys.stdin.readline()を比較してバイナリ検索関数を作成する
一般的に百俊問題を解くとsysstdin.多くの場合、readline()の使用はinput()よりも速度の面で有利である.(ex : https://dailyheumsi.tistory.com/32 )
コードを書くと、エラーが見つからない.この部分は1時間ほどうろうろしていたからだ.覚えるために記録する.
わあでもSYstdinとsys.stdin.readline()とsys.stdin.readline()を比較して、また2時間も無駄にしました.わあ...公式ファイルでも見つからないので、まずはスキップ.
※そのためにrstrip()を貼り付けます.
コンセプトは下図の通りです.すなわち、medial値を変更し続け、値を検索します.
バイナリ検索関数を構築するには、次のようにします.コメントよく見て頑張ってね注釈を書く練習をしましょう.
でもsysstdinとsys。stdin.readline()は、同時にオープンライン文字("n")を呼び出すので注意!
コードを書くと、エラーが見つからない.この部分は1時間ほどうろうろしていたからだ.覚えるために記録する.
わあでもSYstdinとsys.stdin.readline()とsys.stdin.readline()を比較して、また2時間も無駄にしました.わあ...公式ファイルでも見つからないので、まずはスキップ.
とりあえず、ポイントinput()とsys。stdin.readline()の違いは、行文字("n")がユニークであることです。
# input() 사용 # sys.stdin.readline() 사용
for line in input(): for line in sys.stdin.readline()
print(type(line)) print(type(line))
# 결과 #결과
#<class 'str'> #<class 'str'>
#<class 'str'> #<class 'str'>
#<class 'str'> #<class 'str'>
#<class 'str'>
上記sys.stdin.readline()の一番右側に「n」が表示されます.※そのためにrstrip()を貼り付けます.
バイナリ検索は、アレイのソート時に使用できます。
コンセプトは下図の通りです.すなわち、medial値を変更し続け、値を検索します.
バイナリ検索関数を構築するには、次のようにします.コメントよく見て頑張ってね注釈を書く練習をしましょう.
def bin_search(a, key): #a에서 key와 일치하는 원소를 이진 검색 하는 함
low = 0 #검색 범위 맨 앞 원소의 인덱스
high = len(a) - 1 #검색 범위 맨 끝 원소의 인덱스
while True :
middle = (low + high) // 2 #중앙 원소 인덱스
if a[middle] == key:
return True #검색 성공
elif a[middle] < key:
low = middle +1
else :
high = middle -1
if low > high:
break
return False
Reference
この問題について(2011,217開発ログ(10日目)-Python input()とsys.stdin.readline()を比較してバイナリ検索関数を作成する), 我々は、より多くの情報をここで見つけました https://velog.io/@gojaegaebal/201217-개발일지10일차-파이썬-input과-sys.stdin.readline-비교-이진검색-함수-작성テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol