Python Algorithm/Sorting Algorithms (정렬 알고리즘) 3

Selection Sort (선택 정렬)

✅ Selection Sort (선택 정렬)  선택 정렬(Selection Sort)은 가장 작은(또는 큰) 값을 선택하여 정렬하는 알고리즘입니다.배열에서 가장 작은 값을 찾아 첫 번째 값과 교환, 그다음 두 번째로 작은 값을 찾아 두 번째 값과 교환하는 방식으로 진행됩니다.이 과정을 반복하면 배열이 정렬됩니다. 항목설명알고리즘 이름Selection Sort (선택 정렬)시간 복잡도최선: O(n²), 평균: O(n²), 최악: O(n²)공간 복잡도O(1) (추가적인 메모리 사용 없음, 제자리 정렬)알고리즘 설명주어진 리스트에서 가장 작은 값을 찾아 맨 앞의 값과 교환하는 방식으로 정렬특징단순한 구조, 작은 데이터에 적합, 안정 정렬이 아님적용 예시데이터 개수가 적고, 추가 메모리를 쓰기 어려운 환경  ✅..

Counting Sort(카운팅 정렬)

✅ Counting Sort(카운팅 정렬)시간 복잡도: O(n + k) 카운팅 정렬(Counting Sort)은 정수나 범위가 제한된 값을 정렬할 때 매우 효율적인 알고리즘입니다. 특히 값이 작고 범위가 제한적일 때 매우 빠르게 동작합니다. 카운팅 정렬은 비교 기반 정렬 알고리즘이 아니며, 대신 각 숫자의 등장 횟수를 세는 방식으로 정렬을 수행합니다.항목내용알고리즘 이름카운팅 정렬 (Counting Sort)시간 복잡도O(n + k)공간 복잡도O(k)정렬 방식비교 기반 정렬이 아닌 빈도수 기반 정렬사용 사례정수 값이나 작은 범위의 값들을 정렬할 때 유용장점- 매우 빠른 속도 (특히 값의 범위가 작을 때) - 안정적인 정렬단점- 값의 범위가 너무 크면 비효율적 - 공간 복잡도 문제 발생  ✅ 카운팅 정렬 ..

Bubble Sort (버블 정렬)

✅ Bubble Sort (버블 정렬)평균 시간복잡도 : O(n2)   버블 정렬(Bubble Sort)은 가장 간단한 정렬 알고리즘 중 하나로, 주어진 리스트에서 인접한 두 원소를 비교하고 교환하면서 정렬하는 방식입니다. 이름 그대로 버블(bubble)처럼, 가장 큰 수가 차례차례 리스트의 끝으로 "떠오르는" 모습을 비유하여 붙여졌습니다. 항목설명알고리즘 유형비교 기반 정렬시간 복잡도최악: O(n^2) 최선: O(n) 평균: O(n^2)공간 복잡도O(1)안정성안정적인 정렬적용데이터가 적고, 이미 정렬된 경우 최적화 가능단점큰 데이터에서 비효율적, O(n2)O(n^2)O(n2) 시간 복잡도 ✅버블정렬 특징버블 정렬의 동작 원리는 크게 반복문을 통한 비교와 교환으로 이루어집니다. 각 단계에서 가장 큰 수가..