선택 정렬
Updated:
-
선택 정렬(Selection sort)
선택 정렬(selection sort)은 말 그대로 선택하면서 정렬이 진행된다. N개의 정렬되지 않은 데이터가 주어진다면 N개 중 가장 작은 데이터를 선택한다. 그 다음 N-1개 중 가장 작은 데이터를 선택하면서 총 N번 반복 선택하여 정렬을 진행한다. 시간 복잡도는 이다.
-
예시)
1회전 :
10 6 1 3 4
1 6 10 3 4
2회전 :
1 6 10 3 4
1 3 10 6 4
3회전 :
1 3 10 6 4
1 3 4 6 10
- 코드 구현(C++)
#include <iostream>
#include <algorithm>
using namespace std;
int A[5] = { 10,6,1,3,4 };
void print_arr() {
cout << "\n";
for (int i = 0; i < 5; i++) cout << A[i] << " ";
cout << "\n";
}
int main(void) {
for (int i = 0; i < 5; i++) {
int idx = i;
for (int j = i; j < 5; j++) {
if (A[idx] > A[j]) {
idx = j;
}
}
if (idx != i) swap(A[i], A[idx]);
print_arr();
}
return 0;
}
-
결과