관리 메뉴

A seeker after truth

단순하게 문제풀기 - 버블정렬, 순차탐색 본문

Algorithm/이론

단순하게 문제풀기 - 버블정렬, 순차탐색

dr.meteor 2019. 10. 10. 20:21

*본문은 <컴퓨팅 사고력 향상을 위한 문제해결과 알고리즘>(성균관대학교 출판부, 2017)을 참고하여 작성하였습니다.

 

무식하게 다 해보는 것을 의미함. 일반적으로 알고리즘은 문제 해결을 위한 전략을 제시하는데, 하드웨어 발달로 인해 컴퓨터의 빠른 계산 능력이 지원된다는 것을 감안하면 가능한 경우의 수를 일일이 계산하여 답을 찾는 것도 하나의 전략이다. 이를 완전 탐색(exhaustie search) 혹은 Brute Force라 함.
주어진 문제를 완전 탐색으로 해결하는 과정을 이해하기 위해선 재귀함수 개념을 적용해야 한다. 재귀함수는 주어진 문제를 작은 문제로 쪼개어 해결한 뒤 원래 문제를 해결하는 방식이다.

 

 

 

1. 버블 정렬(bubble sort)

def bubbleSort(dataList):
    for checkrange in range(len(dataList)-1,0,-1):
        for i in range(checkrange):
            if dataList[i] > dataList[i+1]:
                dataList[i], dataList[i+1] = dataList[i+1], dataList[i]

        print("{}. {}번쨰 위치의 정렬 값은 {}".format(len(dataList)-checkrange, checkrange+1, dataList[checkrange]),dataList)



dataList = [77,42,35,12,101,5]
bubbleSort(dataList)
print(dataList)

 

 

 

2. 순차 탐색