본문 바로가기

제로베이스/Algorithm

2. 이진검색

이진검색이란?

 

정렬되어 있는 자료구조에서 중앙값과의 크고 작음을 이용해서 데이터를 검색한다.

 

 

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

'제로베이스 > Algorithm' 카테고리의 다른 글

4. 삽입정렬  (0) 2022.10.24
3. 버블정렬  (0) 2022.10.24
1. 선형검색  (0) 2022.10.24