Ordenar sequência de números

Publicado por Vinícius dos Santos Oliveira 23/05/2009

[ Hits: 11.274 ]

Homepage: https://vinipsmaker.github.io/

Download ordenar_cadeia.c




Este script em C organiza sequências de números de forma crescente ou decrescente.

Finalmente comecei a me divertir escrevendo códigos-fonte interessantes. A sequência pode ter quantos elementos o usuário quiser para o mesmo código-fonte, estando limitado apenas pelo computador. São 48 linhas que usam "for, do...while, vetores, etc".

  




Scripts recomendados

Agenda completa em C com SQL

Emulador de Chip8 (com gráficos)

POGRAMA EM C REGISTRO DE CADASTRO ALTERAR E REMOVER CLIENTES PRODUTOS

Script para trocar o papel de parede do fluxbox em GTK

Calculadora em C++


  

Comentários
[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.



Contribuir com comentário