Pular para o conteúdo

Ordenar sequência de números

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".
Vinícius dos Santos Oliveira vinipsmaker
Hits: 11.401 Categoria: C/C++ Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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".
Download ordenar_cadeia.c Enviar nova versão

Fila em C

Árvore B com Arquivos (inserção e pesquisa)

Jogo da velha em C

Tipos de Dados Abstrato - TDA - Vetor

Jogo da velha em C

#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

Entre na sua conta para comentar.