가장 먼저 정리할 정렬 알고리즘은 선택 정렬(insertion sort) 알고리즘이다.
이름에서도 알 수 있듯이, 오름차순으로 정렬한다고 하면, 매 수행에서 가장 작은 값을 선택해서 가장 앞으로 보내는 것이다.
시간 복잡도는 O(n^2)이다.
다음은 특정 배열을 오름차순으로 정렬하는 코드이다.
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 | #include <iostream> #include<algorithm> using namespace std; int main(){ int a[5] = {1,4,-1,2,6}, idx; //선택 정렬 for(int i = 0 ; i < 5 ; i++){ int Min = a[i]; for(int j = i+1 ; j < 5 ; j++){ if(Min > a[j]){ Min = a[j]; idx = j; } } swap(a[i], a[idx]); } //결과 출력 for(int i = 0 ; i < 5 ; i++) cout << a[i] << ' '; return 0; } | cs |
'Computer Science > Algorithm Theory' 카테고리의 다른 글
삽입 정렬 알고리즘 구현 (C++) (0) | 2019.08.28 |
---|---|
버블 정렬 알고리즘 구현 (C++) (0) | 2019.08.28 |
Counting Sort (C++) (0) | 2019.08.23 |
최대 공약수 gcd, 최소 공배수 lcm (0) | 2019.08.19 |
기하 및 그래프 알고리즘 간단 정리 (0) | 2019.08.17 |