ID_DI
DI's study notes
ID_DI
전체 방문자
오늘
어제
  • 분류 전체보기 (85)
    • Deep-Learning (3)
      • CNN (2)
      • NLP (1)
    • Data_Python (6)
      • Numpy (0)
      • Matplotlib (4)
    • Python (8)
      • Python Algorithm (6)
    • Java (36)
      • Java(base) (33)
      • Java practice(base) (2)
    • Git (12)
    • Algorithm (7)
    • etc (7)
    • linux (1)
    • DeskSetup (0)
    • TIL_모각코 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 정렬
  • README.md
  • 파이썬
  • 자바
  • 합병정렬
  • git add.
  • java base
  • Github
  • 알고리즘
  • string to int
  • matplotlib
  • git
  • Python
  • java.lang
  • binarySearch
  • 커밋
  • java
  • java 기초
  • staged
  • java.net

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ID_DI

DI's study notes

[python] (알고리즘) binarySearch (이진탐색) 구현
Python/Python Algorithm

[python] (알고리즘) binarySearch (이진탐색) 구현

2021. 8. 27. 12:58

binarySearch (이진탐색) 구현

코드

#이진탐색
data = [2, 11, 19, 27, 30, 31, 45, 121]
n = int(input('검색할 데이터를 입력하세요: '))

l = 0   #검색할 데이터 리스트의 첫번째 인덱스
h = len(data)-1   #검색할 데이터 리스트의 마지막 인덱스
count = 0   #검색 비교 횟수
isFlag = False   #데이터 검색의 성공 여부

while(l <= h):
    m = (l+h) // 2  # 중간 위치를 계산

    if n in data:
        if n == data[m]:    #검색비교완료
            isFlag = True
            break
        elif n > data[m]:
            l = m + 1
        elif n < data[m]:
            h = m - 1
    #count 위치 유의
    count += 1  # 비교횟수를 증가

print("{} 번 비교했습니다".format(count))

if isFlag:
    print("검색 완료!, 입력된 데이터 {}의 인덱스는 {} 입니다.".format(n, m))
else:
    print("검색 실패, 입력된 데이터 {}는 리스트에 존재하지 않습니다.")

실행결과

검색할 데이터를 입력하세요: 30
2 번 비교했습니다
검색 완료!, 입력된 데이터 30의 인덱스는 4 입니다.

count 의 위치에 따라 비교횟수가 달라지는 점 유의

while 문 끝에 비교 한 회차를 완료했을 때, count의 횟수 증가

'Python > Python Algorithm' 카테고리의 다른 글

[python](알고리즘) quickSort 퀵정렬(랜덤 피봇) 구현  (0) 2021.10.06
[python](알고리즘) mergeSort 병합정렬(합병정렬) 구현  (0) 2021.10.01
[python] factorial 함수, 재귀함수 구현  (0) 2021.08.27
[python](자료구조) Queue class 구현  (0) 2021.08.25
[python](자료구조) stack class 구현  (0) 2021.08.25
    'Python/Python Algorithm' 카테고리의 다른 글
    • [python](알고리즘) mergeSort 병합정렬(합병정렬) 구현
    • [python] factorial 함수, 재귀함수 구현
    • [python](자료구조) Queue class 구현
    • [python](자료구조) stack class 구현
    ID_DI
    ID_DI
    Computer Vision

    티스토리툴바