Selection Sort


O algoritmo selection sort consiste em percorrer todo o vetor para definir a posição atual para o menor valor. Para fazer isso, é feito a comparação do elemento na posição atual com cada valor subsequente.

Implementação:

void selection_sort(int v[], int n) {
	// para cada posição do vetor (1º loop)
	for (int i = 0; i < n - 1; ++i) {
		// salvar o índice com menor valor, que começa pelo índice atual de cada iteração do 1º percurso
		int min = i;
 
		// percorrer cada uma das próximas posições do vetor (2º loop)
		for (int j = i; j < n - 1; ++j) {
			// se o elemento deste segundo percurso for menor que o mínimo, atualizar o índice que contém o menor valor.
			if (v[j] < v[min]) {
				min = j;
			}
		}
 
		// trocar os elementos entre a posição do 1º loop e o índice mínimo
		if (min != i) {
			trocar(v, i, min);
		}
	}
}

Referências