본문 바로가기

python

13. 이진탐색

728x90
반응형

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))

       

 


728x90
반응형

'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