You are on page 1of 8

Algoritmos de Ordenao

Bubble Sort
O que ?
um algoritmo de ordenao bem simples que funciona da
seguinte maneira:

Atravs de diversas varreduras o algoritmo poder trocar


dois elementos de posio entre si. A condio para isso
que o primeiro elemento seja maior que o segundo.

O objetivo final ordenar o vetor levando para o final deste


os maiores elementos do conjunto a cada varredura.
Animao sobre o funcionamento do
algoritmo

https://www.youtube.com/watch?v=yIQuKSwPlro
Quais so suas vantagens?
1. um algoritmo bem simples de se escrever,
conseguimos fazer isso com poucas linhas de cdigo;

2. Simples de entender, rapidamente reconhecemos a


"inteno" do algoritmo;

3. A troca de elementos feita de forma rpida apenas


com o uso de uma varivel auxiliar e do prpria vetor, sem
que haja a necessidade de criao de um outro (caso do
merge sort).
Quais so suas desvantagens?
1. A desvantagem est na sua lentido, tendo em vista
que varreduras so feitas entre pares de elementos por
diversas vezes at chegarmos no resultado final.
E quanto a complexidade?
O Bubble Sort possui complexidade de ordem quadrtica
onde os recursos computacionais crescem pelo quadrado de
nmeros de elementos, o que torna o algoritmo lento para
grandes operaes. Sendo:

1. Pior e mdio caso: O(n2)

2. Melhor caso: O(n)


Cdigo Fonte
function recursiveOrdenation(list, n) {
if (n === 1) {
return list;
}

let temp;
for (var i = 0; i < n - 1; i++) {
if (list[i + 1] < list[i]) {
temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}

return recursiveOrdenation(list, n - 1);


}

var unorderedList = [8, 1, 7, 9, 5, 4, 6];


var orderedList = recursiveOrdenation(unorderedList, unorderedList.length);
console.log(orderedList);
Referncias
SILVEIRA, GUILHERME. Algoritmos em Java Busca,
Ordenao e Anlise. 1 ed. Editora Casa do Cdigo, 2017.

You might also like