์ด๋ถ ํ์ ์๊ณ ๋ฆฌ์ฆ
def binary_search(a, x):
start = 0
end = len(a) - 1
while start <= end:
mid = (start + end) // 2
if x == a[mid]:
return mid
elif x > a[mid]:
start = mid + 1
else:
end = mid - 1
return -1
d = [1, 4, 9, 16, 25, 36, 49, 64, 81]
print(binary_search(d, 36))
print(binary_search(d, 50))
#1 ์ค๊ฐ ์์น๋ฅผ ์ฐพ๋๋ค.
#2 ์ฐพ๋ ๊ฐ๊ณผ ์ค๊ฐ ๊ฐ์ ๋น๊ตํ๋ค.
#3 ๊ฐ๋ค๋ฉด ์์น๋ฒํธ๋ฅผ ๋๋ ค์ฃผ๊ณ
#4 ์ฐพ๋ ๊ฐ์ด ์ค๊ฐ ๊ฐ๋ณด๋ค ํฌ๋ฉด ์ค๊ฐ ์์น์ ์ค๋ฅธ์ชฝ์ ๋์์ผ๋ก ๋ค์ ํ์(1๋ฒ๋ถํฐ ๋ค์)
#5 ์ฐพ๋ ๊ฐ์ด ์ค๊ฐ ๊ฐ๋ณด๋ค ์๋ค๋ฉด ์ค๊ฐ ์์น์ ์ผ์ชฝ์ ๋์์ผ๋ก ๋ค์ ํ์(1๋ฒ๋ถํฐ ๋ค์)
'Algorithm > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ - ์น๊ตฌ์ ์น๊ตฌ์ฐพ๊ธฐ (1) | 2020.09.07 |
---|---|
[Python] ํ์ ์คํ(queue, stack) (0) | 2020.08.31 |
[Python] ํต ์ ๋ ฌ (0) | 2020.08.25 |
[Python] ๋ณํฉ์ ๋ ฌ (0) | 2020.08.23 |
[Python] ์ฝ์ ์ ๋ ฌ (0) | 2020.08.22 |