Seja bem vindo ao Fórum do JavaFree.org
Aqui você irá encontrar respostas para TUDO o que você precisa sobre java.
Deseja participar? Crie sua conta ou efetue seu login
Bueno, como podem ver esta ordenando em 3 casos, o primeiro é um aleatório, o segundo é um iversso, e o terceiro e um quase ordenado(algoritmo que foi passado pelo professor). O seguinte é, na teoria, pra mim pelo menos, o que era pra demora mais é o inversso pois vai trocar a variavel em todas as vezes. Mas quando executo o algoritmo não é isso que acontece. O resultado sai o seguinte:
Tempo Para ordernar um vetor: 1 8.218s ( Aleatório)
Tempo Para ordernar um vetor: 2 8.154s ( Inversso)
Tempo Para ordernar um vetor: 3 8.14s ( Quase ordenado)
Entrei em contato com o professor, e o mesmo disse que o que mais demora é o inversso, porém não sei onde estou errando.
kkkkkkk
Bah tche sério, todas as vezes q executo na minha máquina o que menos demora é o inverso.
Malditos aliens..... kkkkkkkkkkkkkkk....
Falando serio...
Se esta sendo feito conforme o professor lhe disse para ser feito, então acho que não tem o que ser feito... confesso que nunca chequei a fazer esse tipo de teste (de maquina para maquina), mas não sei se isto faz muito sentido, acho que isso faria muito de maquina pra maquina. O que tenho certeza que muda é o tempo quando se trata de outros tipo de classes, por exemplo ArrayList, Vector, HashMap... e por ai vai...
Como lhe disse nunca fiz o teste de maquina para maquina... _________________O melhor lugar para se esconder um cadáver, é na segunda página do Google.
- no array quase ordenado só o primeiro valor é que está na posição correta, todos os outros terão que ser movidos
- esse algoritmo sempre faz o mesmo número de interações e testes, o que varia é o número de vezes que o 'min' é alterado e os valores trocados (ver curiosidade mais abaixo)
- testar o tempo de um algoritmo é meio complicado, ainda mais no Java/Windows. Os laços devem ser executados várias vezes antes de começar o teste por causa da compilação que a máquina virtual pode efetuar (Explicação para o primeiro ser um pouco mais demorado?)
Curiosidade: com o array invertido (segundo caso) o algoritmo necessita trocar valores apenas a metade de vezes (vn/2), enquanto nos outros dois casos é quase vn vezes! (é só acresentar dois contadores, um dentro de cada if para verificar)
[[]] _________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
- no array quase ordenado só o primeiro valor é que está na posição correta, todos os outros terão que ser movidos
- esse algoritmo sempre faz o mesmo número de interações e testes, o que varia é o número de vezes que o 'min' é alterado e os valores trocados (ver curiosidade mais abaixo)
- testar o tempo de um algoritmo é meio complicado, ainda mais no Java/Windows. Os laços devem ser executados várias vezes antes de começar o teste por causa da compilação que a máquina virtual pode efetuar (Explicação para o primeiro ser um pouco mais demorado?)
Curiosidade: com o array invertido (segundo caso) o algoritmo necessita trocar valores apenas a metade de vezes (vn/2), enquanto nos outros dois casos é quase vn vezes! (é só acresentar dois contadores, um dentro de cada if para verificar)
[[]]
Show de bola tua explicação cara, muito obrigado me ajudou bastante pra entender. Vou aplicar os contadores pra ver. Quanto ao tempo criei um laço para repetir 50x, e no final fiz a média de cada um, o vetor inverso demoro um puquinho mais.
Posto aqui o resultado dos demais testes.
Bueno coloquei os contadores.
O resultados. A Soma é a soma dos contadores nos dois IF.
vetor decrescente tem laco 1121606 tempo laco 2 14991a soma é 12160614991
Tempo Para ordernar um vetor Aleatório: 0.226s
vetor decrescente tem laco 156250000 tempo laco 2 7500a soma é 562500007500
Tempo Para ordernar um vetor Decrescente: 0.224s
vetor quase ordenado 186959 tempo laco 2 14989a soma é 8695914989
Tempo Para ordernar um vetor Quase ordenado: 0.212s
Mesmo analisando isto, o decrescente não era pra demora menos? pois é o que menos entra no segundo if, sabemos que no segundo if tem 2 linhas a mais que o primeiro.
por causa da compilação nativa da máquina virtual.
crie classes separadas e execute separadamente para cada tipo de ordenação, ai você vai ter o resultado mais preciso possível _________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."
clf.figueiredoPosts:14
Primeiro segue todo meu trabalho.
Bueno, como podem ver esta ordenando em 3 casos, o primeiro é um aleatório, o segundo é um iversso, e o terceiro e um quase ordenado(algoritmo que foi passado pelo professor). O seguinte é, na teoria, pra mim pelo menos, o que era pra demora mais é o inversso pois vai trocar a variavel em todas as vezes. Mas quando executo o algoritmo não é isso que acontece. O resultado sai o seguinte:
Tempo Para ordernar um vetor: 1 8.218s ( Aleatório)
Tempo Para ordernar um vetor: 2 8.154s ( Inversso)
Tempo Para ordernar um vetor: 3 8.14s ( Quase ordenado)
Entrei em contato com o professor, e o mesmo disse que o que mais demora é o inversso, porém não sei onde estou errando.
Alguem pode me explica?
sekkuarPosts:5998
_________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."