작동 원리 : 최소값을 찾아서 가장 앞으로 옮긴다.

시간복잡도 : O($n^2$)

void swap(int *dest, int *src)
{
	int tmp;

	tmp = *dest;
	*dest = *src;
	*src = tmp;
}

C++, C

void selection_sort(int* arr, int length)
{
	int min;
	
	for (int i = 0; i < length; i++)
	{
		min = i;
		for (int j = i + 1; j < length; j++)
			if (arr[i] > arr[j])
				min = j;
		if (min != i)
			swap((arr + i), (arr + min));
	}
}