본문 바로가기
반응형

cs502

모두를 위한 컴퓨터 과학(CS50) - 정렬 알고리즘 지난 글에서 검색 알고리즘을 알아봤습니다. 서랍을 예시로 들면서 서랍 안에 내용물이 정리되어 있다면? 정리되어 있지 않다면?으로 나눠서 문제를 해결해봤습니다. 그렇다면 정렬은 어떤 방식으로 수행될까요? 버블 정렬 버블 정렬은 정렬 알고리즘 중 하나입니다. 버블 정렬의 개념부터 먼저 말하자면 버블 정렬은 두 개의 인접한 자료 값을 비교하면서 인덱스를 변경하는 방식입니다. 다음과 같은 리스트를 예로 들어보겠습니다. a라는 리스트에 담긴 값은 순서대로 4 3 1 5 2 입니다. 이 값을 버블 정렬의 개념을 이용해서 오름차순으로 정렬해볼까요? 일단 첫 두자리를 비교합니다. 4 3 1 5 2 첫 번째 숫자가 두 번째 숫자보다 크기 때문에 두 숫자의 위치를 변경합니다. 3 4 1 5 2 자 이제 다음 두 수를 비교.. 2022. 4. 23.
모두를 위한 컴퓨터 과학(CS50) - 검색 알고리즘 위와 같은 서랍이 있다고 치자. 우리는 서랍이 모두 열려 있다고 가정할 때 해당 서랍에 어떤 내용물이 들어있는지 한눈에 파악할 수 있다. 하지만 이것은 인간의 얘기..! 컴퓨터는 인간과 달리 전체를 파악하는 능력이 없다. 그렇다면 컴퓨터는 저 서랍에 어떻게 접근하는 것일까? 선형 검색(Linear Search) 떠올릴 수 있는 가장 쉬운 방법이 선형 검색일 것이다. 쉽게 말해 서랍의 맨 윗칸부터, 즉 첫 번째 인덱스부터 마지막 칸(마지막 인덱스)까지 열어보는 것이다. 이를 깔끔하게 정리해서 표현하자면 배열의 인덱스를 처음부터 끝까지 하나씩 증가시키면서 검색하는 것을 말한다. 파이썬으로 선형 검색의 간단한 예제를 만들어 보자 우선 a라는 이름의 리스트를 만들었다. 즉, 위에서 말한 서랍을 만들고 각 서랍에.. 2022. 4. 21.
반응형