알고리즘 2

[알고리즘] 버블 정렬

버블 정렬 버블 정렬. 인접한 두 원소의 교환을 통해 정렬을 수행합니다. 버블 정렬은 상당히 느린 정렬이지만 코드가 단순하기 때문에 정렬해야하는 대상의 개수가 많지 않을때 자주 사용합니다. 버블 정렬의 시간복잡도는 O(n²) 입니다. EX) 2, 7, 4, 9, 1, 5 를 오름차순으로 정렬하라. 앞에서 부터 두 원소를 차례대로 비교하여 작은수가 왼쪽, 큰수가 오른쪽으로 가게 합니다. 2, 7, 4, 9, 1, 5 -> 7이 2보다 크므로 교환하지 않습니다. 2, 7, 4, 9, 1, 5 -> 4는 7보다 작으므로 교환합니다. 2, 4, 7, 9, 1, 5 -> 9는 7보다 크므로 교환하지 않습니다. 2, 4, 7, 9, 1, 5 -> 1은 9보다 작으므로 교환합니다. 2, 4, 7, 1, 9, 5 ->..

알고리즘 2019.10.21

[알고리즘] 이진 탐색 설명 및 예제(샘플 소스)

이진 탐색 설명 및 예제 이진 탐색은 정렬된 리스트에서 사용할 수 있는 탐색 알고리즘입니다. 탐색 속도가 빠르다는 장점이 있지만 정렬된 상태에서 사용해야 한다는 제약이 있습니다. 이진 탐색의 과정은 다음과 같습니다. 1. 리스트의 중앙에 있는 값을 선택하여 목표 값과 비교합니다. 2. 중앙 값이 목표 값보다 크면 중앙 값의 왼쪽에 대해 이진 탐색을 진행합니다. 3. 중앙 값이 목표 값보다 작으면 중앙 값의 오른쪽에 대해 이진 탐색을 진행합니다. 4. 1~3의 과정을 반복합니다. EX) [1, 2, 3, 4, 5, 6, 7] 이 들어 있는 리스트에서 6을 찾는다고 하면 1. 4을 선택하여 6과 비교합니다. 2. 4는 6보다 작으므로 오른쪽에 있는 [5, 6, 7] 에 대해 이진 탐색을 진행합니다. 3. 중..

알고리즘 2019.10.12