선택 정렬

gksrudtlr
|2023. 10. 26. 16:17
  • 정의
    • 최대/최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법
    • 시간 복잡도는 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