■ 64. 이진 탐색 알고리즘
문제213.
순차탐색 알고리즘을 파이썬으로 구현하시오
data=[1,7,11,12,14,23,44,47,51,64,67,77,140,672,871]
sequence_search(data,7)
숫자 7이 있습니다.
def sequence_search(data,num):
for i in data:
if i==num:
return i
break
data=[1,7,11,12,14,23,44,47,51,64,67,77,140,672,871]
print(sequence_search(data,7))
없는 숫자도 같이 찾아보기
def sequence_search(data,num):
for i in data:
if i==num:
return ('숫자 %d이 있습니다' %i)
break
elif i==data[len(data)-1]: # i가 마지막 순서까지 돌았으면
return '해당숫자 아님' # return 하라는 거임
data=[1,7,11,12,14,23,44,47,51,64,67,77,140,672,871]
print(sequence_search(data,11))
||
def sequence_search(x,y):
for i in x:
if i==y:
return '%d 이(가) 숫자가 없습니다.' %y
return "해당숫자 없습니다"
data=[1,7,11,12,14,23,44,47,51,64,67,77,140,672,871]
sequence_search(data,55)
문제214.(오늘의 마지막 문제)
이진 탐색 알고리즘을 파이썬으로 프로그래밍 하시오
data=[1,7,11,12,14,23,44,47,51,64,67,77,140,672,871]
binary_search(data,7)
숫자 7이 있습니다.
binary_search(data, 8)
숫자 8이 있습니다
def binary_search(data, num):
while len(data) >= 1:
a = len(data)//2
if data[a] > num:
data = data[:a-1]
elif data[a] <num :
data = data[a+1:]
else:
x = data[a]
return x
return '값이 없습니다'
data = [1, 7, 11, 12, 14, 23, 44, 47, 51, 64, 67, 77, 140, 672, 871]
print(binary_search(data, 23))
-----------------------
def binary_search(a,b):
t=1
a.sort()
while t>= 1:
t=len(a)//2
if a[t] > b:
a=a[:t]
print(a)
elif a[t]<b:
a=a[t:]
print(a)
elif a[t]==b:
return '숫자 %d이(가) 있습니다.' %b
print(a)
return '숫자 %d가 없습니다' %b
data = [1, 7, 11, 12, 14, 23, 44, 47, 51, 64, 67, 77, 140, 672, 871]
print(binary_search(data,8))
'python' 카테고리의 다른 글
★판다스공식 (0) | 2019.03.25 |
---|---|
14. pandas (0) | 2019.03.25 |
12. %, divmod, max/min (0) | 2019.03.25 |
11. try~except (0) | 2019.03.25 |
10. class (0) | 2019.03.25 |