Bubblesort

2 respostas
Queops82

Boa noite,

Estou tendo problemas para usar esse Algortimo de ordenação, na realidade estou tendo problema pra entender ele, posto que o professor da Facul, falou uma coisa e na internet achei diversas coisas diferentes e com poucas ligações, simplesmente queria entender o Algortimo e ver um exemplo que funcione corretamente

Obrigado por atenção de todos

2 Respostas

rogeriopaguilar

A implementação e explicação você pode encontrar aqui em várias linguagens:
http://pt.wikipedia.org/wiki/Bubble_sort

para entender melhor eu acho que este vídeo ajuda:

http://www.youtube.com/watch?v=llX2SpDkQDc&feature=fvwrel

rogeriopaguilar

Eu fiz uma implementação em javascript, acho que pode ajudar (salve arquivo como html e abra no browser):

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<script>
w = function(str){document.write('<br />' + str);}

/*Imprime na tela as propriedades de um objeto
  na primeira chamada, deve ser chamado com dump(obj, true);
*/
function dump(obj, print) {
	var out = '';
	for (var i in obj) {
	   if( typeof obj[i] == "object" ) {
		  out +=  "\n[" + i + " : " + dump(obj[i], false) + "]\n";
	    } else {
		  out += i + ": " + obj[i] + "\n";
	   }
	}

    	//alert(out);
	if(print) {			
	    var pre = document.createElement('pre');
	    pre.innerHTML = out;
	    document.body.appendChild(pre)
	}
	return out;
}

function bubbleSort(array)
{
    w('####################Inicializando ordenação####################');
    k = array.length;
    for(i = 0; i < array.length; i++)
    {
        w("*****Iteração " + i + "***** Array atual --> " + array.join(','));
        for(j = 1; j < k; j++){
            if(array[j-1] > array[j]) 
            {
                temp = array[j-1];    
                array[j - 1] = array[j];
                array[j] = temp;
                w("Trocando itens array[" + (j-1) + "] = " + array[j-1] + " e array[" + j + "] = " + array[j] + " --> " + array.join(','));
                
            } else {
                w("Itens array[" + (j-1) + "] = " + array[j-1] + " e array[" + j + "] = " + array[j] + " não serão trocados --> " + array.join(',') );
            }
        }
        k--;
        w("*****Final da Iteração " + i + "*****");
    }
    w('####################Ordenação finalizada####################');
}

a = [3,2,4,5,1,8];
bubbleSort(a);
</script>
</head>
</html>
Criado 24 de setembro de 2012
Ultima resposta 24 de set. de 2012
Respostas 2
Participantes 2