728x90
반응형
- 선택 정렬 : 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복
- 시간 복잡도 : O(N^2)
#include <bits/stdc++.h>
using namespace std;
int n = 10;
int target[10] = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};
int main() {
for(int i=0; i<n; i++){
int index = i; // 가장 앞의 데이터의 인덱스 선택
for(int j=i+1; j<n; j++){ // 처리되지 않은 데이터 중 가장 작은 데이터의 인덱스 선택
if(target[index] > target[j]) index = j;
}
swap(target[i], target[index]); // 자리 바꿈
}
for(int i=0; i<n; i++){
cout << target[i] << ' ';
}
return 0;
}
https://www.youtube.com/watch?v=KGyK-pNvWos&t=2335s
728x90
반응형
'알고리즘' 카테고리의 다른 글
[이코테/계수정렬/C++] 계수정렬 (0) | 2023.01.03 |
---|---|
[이코테/정렬/C++] 삽입정렬 (0) | 2023.01.03 |
[백준/이분탐색/C++] 10816번 숫자 카드 2 (upper_bound, lower_bound 사용) (0) | 2023.01.03 |
[백준/이분탐색/C++] 10815번 숫자 카드 (0) | 2023.01.03 |
[백준/이분탐색/C++] 2805번 나무 자르기 (0) | 2023.01.02 |