본문/내용
1. 선택 정렬 개요
선택 정렬은 비교 기반 정렬 알고리즘 중 하나로, 배열에서 최소값 또는 최대값을 반복적으로 선택하여 정렬하는 방식이다. 이 알고리즘은 전체 데이터 중에서 가장 작은(혹은 큰) 값을 찾아서 맨 앞 또는 맨 뒤에 위치시키는 과정을 반복한다. 선택 정렬은 구현이 간단하여 이해와 구현이 쉽다는 장점이 있지만, 시간 복잡도 면에서는 비효율적이라는 단점도 존재한다. 선택 정렬의 시간 복잡도는 최악, 평균, 최선 모두 O(n²)로, 배열의 크기가 커질수록 수행 시간이 급격히 증가한다. 예를 들어, 10,000개의 데이터를 정렬하는 데 대략 1억 가산 비교 연산이 필요하며, 이는 기존의 다른 정렬 알고리즘에 비해 비효율적인 성능이다. 선택 정렬은 데이터가 이미 정렬되어 있더라도 전체 연산 수가 크게 줄지 않기 때문에, 최선의 경우에도 O(n²)의 시간 복잡도를 보인다. 내부적으로는 이중 루프를 통해 데이터를 비교하며, 외부 루프는 정렬되지 않은 배열의 범위를 조절하고, 내부 루프는 선택된 범위 내에서 최소값 위치를 찾는다. 이 과정은 정렬된 위치를 찾은 후 최소값을 현재 위치에 교환함으로써 점진적으로 정렬 배열을 만들어 간…