728x90
반응형

알고리즘 2

[C언어] 정렬 알고리즘(분할 정복 알고리즘) - 병합정렬(Merge Sort), 퀵 정렬(Quick Sort)

1. 병합 정렬(Merge Sort)분할 정복 전략을 사용하여 배열을 반으로 나누고, 각각을 정렬한 후 병합하는 방식.안정 정렬: 동일한 값의 상대적 순서를 유지시간 복잡도: O(N log N)공간 복잡도: O(N)동작 과정배열을 전반으로 나눔나눈 하위 배열을 각각 재귀적으로 정렬두개의 정렬된 배열을 병합하여 하나의 정렬된 배열을 만듬예시 코드#include void merge(int arr[], int left, int mid, int right) { int n1 = mid - left + 1; int n2 = right - mid; int L[n1], R[n2]; for (int i = 0; i 2. 퀵 정렬(Quick Sort)배열에서 하나의 피벗(Pivot)을 선택한 후, 피..

개발/C 2025.01.24

[C언어] 정렬 알고리즘 - 버블정렬, 선택정렬, 삽입정렬

1. 버블 정렬(Bubble Sort)인접한 두 요소를 비교하여 크기가 순서에 맞지 않으면 서로 교환큰값이나 작은값이 반복적으로 앞으로 혹은 뒤로 이동하는 방식으로 동작시간 복잡도: O(N) ~ O(N^2)동작 과정배열의 첫 번째 요소부터 인접한 두 요소를 비교조건에 따라 교환하며 배열 끝까지 진행한번 순회가 끝나면 가장 큰 값이 배열 끝에 위치함이 과정을 배열 크기만큼 반복예시 코드#include void bubbleSort(int arr[], int n) { for (int i = 0; i arr[j + 1]) { // 오름차순 정렬 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j..

개발/C 2025.01.23
728x90
반응형