oi eu ando pesquisando sobre esse metodo de ordenaçao to to endendendo ai resolvi pegar alguns exemplos na net masi so que nao consigo entender oq ele faz e o que esta acontecendo sera que alguem poderia me ajudar me passando um exmplo com algumas explicaçoes para poder entender melhor ficaria muito grata.Desde ja fico muito grata.
Sera que alguem poderia me ajudar com heapsort
S
2 Respostas
Oi ssica silva,
Esse algoritmo não é muito fácil de entender, ao menos na minha opinião. Um ponto que com certeza gera bastante confusão neste algoritmo é a recursividade que é utilizada para atingir a ordenação da lista de dados.
Vou te dar uma dica de uma técnica antiga, trabalhosa e extremamente chata :twisted: mas muito eficiente para atingir o entendimento deste algoritmo e de vários outros que poderão surgir na sua frente (talvez vc até já saiba fazer isso).
A galerinha das antigas chamavam essa arma (essa técnica) de TESTE DE MESA, vamos lá:
a) Pegue um código que esteja executando sem erros e que esteja lhe apresentado o resultado desejado.
.Este código tem que ser inteligível por você, quero dizer que não pode haver nada de misterioso em termos de códificação. Porque o objetivo é entender o algoritmo e não a codificação.
b) Pegue um folha de papel (uma planilha eletronica poderia ser bastante interessante e prática) e faça uma lista dos dados que você quer ordernar. Esta lista tem que ser igual a que você irá colocar no programa para ordenar.
c) Ao lado de cada item da lista (que vc escreveu no papel) coloque a posição que o item ocupa na lista Ex:
+--+-------------+
| 0 | Cacilda |
+---+------------+
| 1 | Bernadete |
+---+------------+
| 2 | Zuleika |
.......
d) Execute o programa em modo debugger e siga passo a passo a execução.
.Toda alteração que o programa fizer na lista de dados vc altera na mão a sua lista no papel, a sua referencia será os números que vc colocou no lado dos itens, que vc poderá verificar pelo debugger.
Na verdade tudo isso você poderá fazer apenas utilizando o debugger verificando a cada passo do processamento o que aconteceu com sua lista. O problema com isso é que a pessoa acaba se perdendo porque há muita iteração em cima da lista e a idéia das fases vai se perdendo prejudicando o entendimento do algoritmo.
Esta técnica permite que vc tenha uma visão geral e detalhada ao mesmo tempo do que está acontecendo, sem falar que as alterações na lista será você mesma quem estara executando junto com o micro.
Porisso os caras chamavam isto de TESTE DE MESA, porque a simulação da execução era feita na mão.
Desculpe por não ter uma idéia melhor e menos confusa que essa :(
System.out.println( “Abraços e boa sorte” );
:lol:
É impressão minha ou você tá pedindo ajuda em outros lugares?
http://www.javafree.org/javabb/viewtopic.jbb?t=868572&me-ajuda-com-heapsort
Criado 26 de maio de 2008
Ultima resposta 27 de mai. de 2008
Respostas 2
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo