[알고리즘] 퀵 정렬(Quick Sort) [찰스 앤터니 리처드 호어의 정렬 알고리즘]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 퀵 정렬(Quick Sort)이란? 적절한 원소 하나를 기준(pivot)으로 삼아 그보다 작은 것을 앞으로 빼내고 그 뒤에 기준을 옮겨 기준보다 작은 것, 큰 것으로 나눈뒤 나누어진 각각에서 다시 기준을 잡고 정렬해서 각각의 크기가 0이나 1이 될 때까지 정렬한다.
[알고리즘] 힙 정렬(Heap Sort) [힙 트리를 활용한 정렬 알고리즘]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 힙 정렬(Heap Sort)이란? 선택 정렬과 거의 같은 알고리즘으로, 가장 큰 원소를 뒤로 보내는 데에 매번 쭉 돌면서 알아내느냐 힙을 사용하여 알아내느냐가 유일한 차이점이다. - 힙 정렬의 정렬 과정 원소들을 전부 힙에 삽입한다. 힙의 루트에 있는 값은 남은 수들 중에서 최솟값(혹은 최댓값)을 가지므로 루트를 출력하고 힙에서 제거한다. 힙이 빌 때까지 2의 과정을 반복한다.
[알고리즘] 병합 정렬/합병 정렬(Merge Sort) [존 폰 노이만의 정렬 알고리즘]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 병합 정렬/합병 정렬(Merge Sort)이란? 원소 개수가 1 또는 0이 될 때까지 두 부분으로 쪼개고 쪼개서 자른 순서의 역순으로 크기를 비교해 병합하는 방식. 병합된 부분 안은 이미 정렬되어 있으므로 전부 비교하지 않아도 제자리를 찾을 수 있다. 이 그림에서 분할 정복으로 일정하게 정렬이 이뤄지는 병합 정렬의 특징을 잘 파악할 수 있다. [38, 27, 43, 3, 9, 82, 10]인 입력값은 [38, 27, 43, 3]과 [9, 82, 10] 로 두 부분으로 분할, 다시 [38, 27], [43, 3], [9, 82], [10]로 네 부분으로 분할 등의 방식으로 각각 더 이상 쪼갤 수 없을 때까지 계속해서 분할한 후, 분할이 끝나면 정렬하면서 정복해 나간다.
[알고리즘] 정렬 알고리즘(Sorting algorithm)이란? [정렬 알고리즘의 정의, 이진탐색(Binary Search)]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 정렬 알고리즘(Sorting algorithm)이란? 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘 - 정렬 알고리즘의 결과 조건 출력은 비 내림차순(각각의 원소가 전 순서 원소에 비해 이전의 원소보다 작지 않은 순서)이다. 출력은 입력을 재배열하여 만든 순열이다. - 왜 사용하는가? 컴퓨터 분야에서 사용하는 데이터의 경우, 숫자의 순서나 어휘의 순서대로 정렬한 다음 사용해야 되는 경우가 많아 얼마나 효율적으로 정렬하느냐가 문제의 핵심이다. 데이터를 정렬해야 하는 이유는 탐색을 위해서! → 데이터가 정렬되어 있다면 이진 탐색이라는 강력한 알고리즘을 사용할 수 있다. - 이진 탐색(Binary Search) 오름차순으로 정렬된 정수의 리스트를 같은 크기의 두 부분 리스트로 나누..