You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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