선택정렬의 아이디어는 매우 간단하다. 오름차순을 기준으로, 주어진 숫자들 중 가장 작은 숫자를 찾고 맨 앞에 놓는 것이다. 이것을 반복해서 결론적으로 오름차순 정렬을 완성시키는 것이 바로 선택 정렬이다. 매우 간단하게 구현할 수 있지만 O(n²)이라는 시간 복잡도를 가졌기에 빠르다고 보기는 힘들다.
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
int i, j, min, index, temp;
int array[10] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 };
for (i = 0; i < 10; i++) {
min = 99999; // 가장 큰 수라 가정
for (j = i; j < 10; j++) {
if (min > array[j]) {
min = array[j];
index = j;
}
}
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
for (i = 0; i < 10; i++) {
cout << array[i] << " ";
}
return 0;
}