- 정의
- 최대/최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법
- 시간 복잡도는 O(N^2)이다
- 핵심 이론
- 최대/최소 값을 찾고 남은 정렬 부분의 가장 앞에 있는 데이터와 Swap하는 것이 핵심이다
- 구현
#include<iostream>
#include <vector>
using namespace std;
void SelectionSort(vector<int>& v)
{
for (int i = 0; i < (int)v.size(); i++)
{
int min = i;
for (int j = i+1; j < (int)v.size(); j++)
{
if (v[min] > v[j])
{
min = j;
}
}
swap(v[min], v[i]);
}
}
int main()
{
vector<int> v = { 42,40,24,62,32 };
SelectionSort(v);
}
'자료구조 > Do It' 카테고리의 다른 글
퀵 정렬 (0) | 2023.10.26 |
---|---|
삽입 정렬 (1) | 2023.10.26 |
버블 정렬 (0) | 2023.10.25 |
스택과 큐 (0) | 2023.10.24 |
구간 합 (0) | 2023.10.24 |