forked from kelvins/algorithms-and-data-structures
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SelectionSort.js
39 lines (31 loc) · 1.16 KB
/
SelectionSort.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//Diogo L.C. Felipe
/*
O Selection Sort, ou algoritomo de ordenação por seleção ordena uma serie de dados
da seguinte maneira:
1. Acha o menor valor no vetor a partir da posição 'i';
2. Troca esse valor com o valor que está na posição 'i';
3. Soma 1 na posição de inicio (i = i + 1);
4. Repete o algorítimo até a penultima posição do verto.
*/
function selectionSort(vetorDesordenado, inicio, fim) {
for (let i = inicio; i < fim - 1; i++) {
let menorPosicao = buscaPosicaoMenor(vetorDesordenado, i, fim);
[vetorDesordenado[menorPosicao], vetorDesordenado[i]] = [vetorDesordenado[i], vetorDesordenado[menorPosicao]];
}
return vetorDesordenado;
}
function buscaPosicaoMenor(vetorDesordenado, inicio, termino){
let posicaoMenor = inicio;
let menor = vetorDesordenado[inicio]
for (let i = inicio; i < termino; i++) {
if(vetorDesordenado[i] < menor){
menor = vetorDesordenado[i];
posicaoMenor = i;
}
}
return posicaoMenor;
}
var vetorDesordenado = [54,42,11,33,24,99,77,80];
let vetorOrdenadoViaSelectionSort = selectionSort(vetorDesordenado, 0, vetorDesordenado.length);
console.log(vetorOrdenadoViaSelectionSort);