336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
-
주어진 수열 중 최소값의 인덱스를 찾는다.
- 최소값의 인덱스를 맨 앞에 위치한 값과 교체한다.
- 이 과정을 마지막 인덱스 바로 전까지 진행한다.
시간복잡도는 O(N^2) 이다.
[C++11 source code]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include<iostream> #include<vector> using namespace std; void print_v(vector<int>& v) { for (auto it : v) { printf("%d ", it); } puts(""); } int main() { int n; vector<int> v; cin >> n; v = vector<int>(n, -1); for (int i = 0; i < n; i++) { cin >> v[i]; } // input for (int pivot = 0; pivot < n - 1; pivot++) { int change_index = pivot; for (int there = pivot + 1; there < n; there++) { if (v[change_index] > v[there]) { change_index = there; } } if (change_index == pivot) continue; int temp = v[pivot]; v[pivot] = v[change_index]; v[change_index] = temp; } // selection sort print_v(v); return 0; } /* input format N ~ # of numbers v[0] ... v[N-1] */ | cs |
'PSNote > Algorithm' 카테고리의 다른 글
기수정렬(Radix sort) (0) | 2017.12.05 |
---|---|
삽입정렬(Insertion sort) (0) | 2017.12.02 |
버블정렬(Bubble Sort) (0) | 2017.11.18 |
네트워크플로우, 에드몬드 카프(Edmonds-Karp) 알고리즘 (0) | 2017.11.15 |
구간트리(세그먼트트리;Segment tree) (0) | 2017.09.27 |