반응형

시간복잡도 2

합병 정렬 (Merge Sort)

Merge Sort, Quick Sort, Heap Sort 중 에서 Merge Sort, Quick Sort 는 분할 정복법 (Divide and Conquer) 에 해당 합니다. ​ * 분할 정복법 - 분할 : 해결하고자 하는 문제를 작은 크기의 동일한 문제들로 분할 - 정복 : 각각의 작은 문제를 순환적으로 해결 - 합병 : 작은 문제의 해를 합하여(merge) 원래 문제에 대한 해를 구함 1. Merge Sort 는 위 그림과 같이 주어진 배열을 분할 해줍니다. (5, 2) (4, 7) (1, 3) (2, 6) 2개의 원소들로 분할 해줍니다. ​ 2. 분할된 각 원소들을 각각 정렬(합병) 시켜 줍니다. (5), (2) -> 정렬 -> (2, 5) (4), (7) -> 정렬 -> (4, 7) (1)..

Algorithm 2021.01.04

이진 탐색(Binary Search)

1. 이진 탐색(Binary Search) 이진 탐색은 값이 정렬 되어 있는 상태에서 중앙 값을 이용해서 찾고자 하는 데이터의 위치를 탐색하는 알고리즘 입니다. 전체 탐색 범위(첫번째 인덱스, 마지막 인덱스)와 중앙 인덱스 알고 있다면, 중앙 인덱스의 값과 찾고자 하는 데이터의 값을 비교 해서, 더 작다면 왼쪽만 탐색, 더 크다면 오른쪽만 탐색 합니다. 따라서 우리는 3가지 변수를 알고 있어야 합니다. 첫번째 인덱스 : head 마지막 인덱스 : tail 중앙 인덱스 : mid = (head + tail) / 2 여기서, 중앙 인덱스의 나머지 값은 버리고, 몫만 사용 합니다. 2. 이진 탐색(Binary Search) 순서 위 그림과 같이, 찾고자 하는 target 값은 9 입니다. (target < a..

Algorithm 2020.08.27
반응형