🙇‍♀️선택정렬 (selection sort)


🪐선택정렬 (selection sort)

기본 정렬 중 가장 많이 쓰이는 정렬 중에 하나이다.
구현이 직관적이면서 버블 정렬보다 효율이 좋다.

void selectionSort(vector<int>& seq)
{
	for (int i = 0; i < seq.size() - 1; ++i)
	{
		int idx = i;

		for (int j = i + 1; j < seq.size(); ++j)
		{
			if (seq[j] < seq[idx])
				idx = j;
		}

		swap(seq[i], seq[idx]);
	}
}

선택 정렬

가장 작은 숫자의 index를 골라준 뒤, 순서에 맞게 정렬한다.
마지막의 숫자는 정렬할 필요가 없이 무조건 제일 큰 숫자가 올 것이므로, seq.size() - 1 까지 순회한다.

j 역시 i번부터 한다면 같은 숫자를 비교하는것이므로, i + 1부터 seq.size() - 1 까지 순회한다.