[1] Comentário enviado por
vinipsmaker em 23/05/2009 - 09:26h:
Para quem quiser substituir o do...while por while terá de mudar o valor inicial da variável j para 0.
[2] Comentário enviado por
danielgimenes em 26/05/2009 - 08:00h:
Nossa velho...
esse código é muito lento para um 'n' grande.
Caso tenha interesse, procure os algoritmos Quicksort e Mergesort para estudar. São muito bacanas e têm um desempenho muito melhor.
;)
De qualquer forma, parabêns pela iniciativa e bom estudo!
[[]]'s
Daniel
[3] Comentário enviado por
vinipsmaker em 26/05/2009 - 09:40h:
O método bolha tem verificações a mais e desde o começo eu tinha pensado nisso. Eu li a apostila, então o autor da apostila iria começar a mostrar o código-fonte, então eu fechei a apostila e tentei eu mesmo. Depois eu vi que a minha implementação era superior, pois no código-fonte do autor da apostila, era preciso um código-fonte diferente para sequência com o número de elementos diferente.
De qualquer forma, obrigado por me indicar estes métodos, mas o quicksort também não é muito bom.
[4] Comentário enviado por
vinipsmaker em 26/05/2009 - 10:19h:
Pesquisei mais algoritmos e achei os algoritmos selectionsort, radixsort e gnomesort interessantes.
[5] Comentário enviado por
DanielGimenes em 27/05/2009 - 08:01h:
Vinicius,
O quicksort e o mergesort são bons sim! E são muito utilizados. A própria STL usa. O quick, apesar de ter O(n^2), na média executa em O(nlogn), sendo um bom desempenho. Este é considerado o melhor algoritmo geral de ordenação. E o merge é bastante usado pois é estável (não tira da ordem valores iguais) e ideal para implementações com lista ligada, pois gasta muito menos memória e processamento do que, por exemplo, o quicksort e o heapsort nas mesmas condições. (Bibliografia: Introduction to Algorithms, CLRS; Wikipédia; e conhecimentos)
Existem outros interessantes também. Chamo a atenção para o radixsort que você mencionou e o bucketsort. Estes são muuuuito rápidos, mas não podem ser usados em qualquer problema, pois dependem de que você possa assumir certos atributos sobre os dados.