2024/06 2

정렬 알고리즘 알아보기 (2) - 효율적인 정렬 알고리즘

들어가며지난 시간에는 기본적인 정렬 알고리즘에 대해 알아봤는데요. 이번 시간에는 그보다 효율적인 정렬 알고리즘에 대해 알아보겠습니다. 병합 정렬(Merge sort)분할 정복 알고리즘의 대표적인 예로, 리스트를 반으로 나누어 정렬한 뒤 다시 병합하는 방식으로 동작합니다. 병합 정렬의 동작 과정은 다음과 같습니다.원소 개수가 1 또는 0이 될 때까지 리스트를 절반으로 나눕니다.각 부분 리스트를 정렬합니다.정렬된 두 부분 리스트를 병합합니다.      시간복잡도O(n log n) 공간복잡도O(n) 특징분할 정복 알고리즘안정 정렬추가적인 메모리 공간 필요병렬 처리에 적합대규모 데이터 처리에 효과적 힙 정렬(Heapsort)힙 자료구조를 활용하여 정렬을 수행하는 알고리즘입니다. 동작 과정은 다음과 같습니다.주어..

Algorithm/Sort 2024.06.23

정렬 알고리즘 알아보기 (1) - 기본 정렬 알고리즘

들어가며이번 시간에는 기본 정렬 알고리즘에는 어떤 것들이 있는지 알아보겠습니다.버블 정렬(Bubble sort)리스트의 첫 원소부터 시작해 인접한 두 원소를 비교하여 정렬하는 가장 단순한 알고리즘입니다.동작 과정은 다음과 같습니다.리스트의 첫 번째 원소부터 마지막 원소까지 인접한 두 원소를 비교합니다.앞의 원소가 뒤의 원소보다 크다면 두 원소의 위치를 서로 바꿉니다.이 과정을 리스트의 마지막 원소까지 반복합니다.이 과정을 리스트가 정렬될 때까지 반복합니다.  시간 복잡도O(n²)최선의 경우 O(n). 리스트가 이미 정렬되어 있는 경우 정렬을 한 번만 수행하면 됩니다. 공간 복잡도O(1) 특징안정 정렬제자리 정렬리스트가 이미 정렬되어 있는 경우 효율적거의 모든 상황에서 최악의 성능 정렬이 이루어지는 모습이..

Algorithm/Sort 2024.06.21