이진검색이란?
정렬되어 있는 자료구조에서 중앙값과의 크고 작음을 이용해서 데이터를 검색한다.
datas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
print(f"datas: {datas}")
print(f"datas length: {len(datas)}")
searchData = int(input("찾으려는 숫자 입력: "))
searchResultIdx = -1
startIdx = 0
endIdx = len(datas) - 1
midIdx = (startIdx + endIdx) // 2
midVal = datas[midIdx]
while searchData <= datas[len(datas) - 1] and searchData >= datas[0]:
if searchData > midVal:
startIdx = midIdx
midIdx = (startIdx + endIdx) // 2
midVal = datas[midIdx]
print(f"midIdx : {midIdx}")
print(f"midVal: {midVal}")
elif searchData < midVal:
startIdx = midIdx
midIdx = (startIdx + endIdx) // 2
midVal = datas[midIdx]
print(f"midIdx : {midIdx}")
print(f"midVal: {midVal}")
elif searchData == midVal:
searchResultIdx = midIdx
break