-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbubble-sort.js
More file actions
21 lines (15 loc) · 1.32 KB
/
Copy pathbubble-sort.js
File metadata and controls
21 lines (15 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function bubbleSort(numbers) { // Recebe o array a ser ordenado
let swaps = -1; // Inicializa a váriavel contadora de swaps
let rounds = 0; // Inicializa a várivavel responsável por definir quantas iterações vão ser necessárias
while (swaps != 0) { // Se não houver swaps é porque está tudo ordenado, então a execução é encerrada
swaps = 0; // Swaps é definido para 0, pois naturalmente não houve alterações da ordem dos valores
for (let i = 0; i < numbers.length - 1 - rounds; i++) { // Em cada iteração subtrai a quantidade de rounds que já foram, pois o array estará ordenado de trás pra frente a cada loop
if(numbers[i] > numbers[i + 1]) { // Verifica se o valor atual for maior que o próximo valor do array
[numbers[i], numbers[i + 1]] = [numbers[i + 1], numbers[i]]; // Faz o swap dos valores, trocando o valor maior para a posição do menor e o menor para a posição do maior, caso a condição seja verdadeira
swaps++; // Acrescenta um swap à váriavel, pois foi feito a troca de posições do maior com o menor
}
}
rounds++; // Ao finalizar cada iteração, o valor de rounds é incrementado, pois o array vai sendo ordenado de trás pra frente
}
return numbers; // Retorna o array ordenado
}