- 선택 정렬은 구현은 단순하지만, 버블 정렬과 같이 O(n^2)의 시간 복잡도를 가지는 비효율적인 정렬 방식입니다. 📉
- 작동 원리는 배열의 정렬되지 않은 부분에서 가장 작은 값을 찾아, 해당 부분의 가장 앞자리 값과 교환하는 과정을 반복하여 전체 배열을 오름차순으로 정렬합니다. 🔍
- 버블 정렬은 배열이 어느 정도 정렬되어 있으면 일찍 종료될 수 있지만, 선택 정렬은 배열의 초기 상태와 관계없이 항상 같은 수의 연산을 소모하는 추가적인 단점이 있습니다. 🔄
- 각 외부 루프(i)마다 정렬되지 않은 범위에서 가장 작은 값을 찾은 후, 해당 위치와 단 한 번의 교환 작업만 발생합니다. ↔️
- 비효율적인 시간 복잡도(O(n^2))로 인해 실제 개발 환경에서는 거의 사용되지 않습니다. 🚫
- 코드 구현은 이중 반복문(바깥쪽
i, 안쪽 j)을 사용하여 i번째 위치에 i번째로 작은 값을 찾아 배치하며, minIndex 변수로 현재 범위 내 최소값의 인덱스를 추적합니다. 💻
- 배열이 이미 정렬되어 있어도 이를 감지하고 작업을 종료하는 장치가 없어, 항상 모든 과정을 끝까지 수행합니다. ⏳