본문 바로가기

코딩/Python

검색 알고리즘 이진검색문제 만들어 풀기

1부터 32463의 수 중 하나인 n을 입력받고 1~32463의 범위에서 이진검색으로 n을 찾아라

 

필자가 구현한 코드
결괏값
시간복잡도도 한 번 계산해봤다.
결괏값

 

 

부족했던 점

1.

변수이름이 기억이 안나서 binna로 했는데

first -> pl

last -> pr

binna -> pc

이렇게 고쳐줘야 할 것 같다.

 

2.

binna = int((first + last)/2)

binna =(first + last)//2

//는 그 연산 결과값을 int형으로 만들어준다.

 

다음에 더 구현하고 싶은것

1.

배열로 이진검색을 구현하고 싶고 선형검색의 보초법도 구현해보고 싶다.

 

 

 

더불어 같이 파이썬 코딩 스터디하고 있는 친구의 글도 공유하고자 한다.

https://bonun.tistory.com/2

 

파이썬, 이진검색

def a (n): pl = 1 pr = 32463 if n < pl or n > pr: print("숫자를 다시 입력 하세요") else: while True: pc = (pl + pr) / 2 if n < pc: pr = pc elif n > pc: pl = pc else: print(int(pc)) break a () 이진 검색이란 정해진 숫자열이나 문자

bonun.tistory.com