Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Turbo C métodos de classificação
Classificação de uma matriz de dados é um dos problemas clássicos da ciência da computação, e por isso deve vir como nenhuma surpresa que uma grande variedade de métodos para a classificação em Turbo C e outras linguagens de ter sido concebida . Eles vão desde métodos de implementar simples ineficientes , mas para muito mais rápido , mas os métodos mais complexos. O melhor algoritmo para uma situação depende do tamanho esperado do conjunto de dados a serem classificados e a importância da eficiência . Bubble Sort

The Bubble Sort é o mais simples , e mais lento , o algoritmo de classificação. Ele simplesmente passa através da matriz , comparando o elemento de corrente para o elemento directamente em frente do mesmo . Se esses dois elementos estão fora de ordem , eles trocam de lugar . Quando o Bubble Sort chega ao fim , ele verifica para ver se algo mudou lugares. Se o fizesse, ele começa de novo desde o início. Ele continua loop através da matriz até que ele consegue completar uma passagem completa , sem fazer qualquer troca . Em média , isso leva O (n ²) tempo, mas se os dados é conhecido por ser muito quase classificado, com talvez apenas um elemento fora do lugar , ele pode trabalhar em O ( n). Então é um bom método para pequenas matrizes que não são classificadas frequentemente ou maiores matrizes que são conhecidos por já ser classificado ( ou quase ) a maior parte do tempo.
Seleção Ordenar

o tipo de seleção é um pouco mais refinado do que o Bubble Sort . O algoritmo procede através de toda a matriz de dados para encontrar o elemento mais pequeno . Onde quer que o elemento é , tem a sua posição trocado com o primeiro elemento , e um contador de nota que o primeiro elemento da matriz é conhecido por ser correctamente classificados . Em seguida, prossegue através de toda a matriz , novamente, excepto para o primeiro elemento ( que é conhecido por estar no lugar correcto . ) Quando se encontra o elemento mais baixo , move-o para a segunda posição e aumenta o contador para indicar que os dois primeiros elementos são conhecidos por serem classificados. No geral, a Ordem Seleção trabalha em O (n ²) tempo, mas ele tem uma vantagem: quando muito, apenas n-1 muda nunca ocorrer para a matriz, uma vez que cada elemento só é movido quando a sua posição é conhecida . Isto o torna um bom algoritmo em algumas situações exóticas , onde a gravação de dados na memória leva drasticamente mais do que lê-lo.
Quicksort

Como o nome indica , o QuickSort é rápido. Em média, ele pode realizar uma espécie de O (n log n) . Mas é muito mais complexa do que muitos outros programas e exige que o desenvolvedor saber um pouco sobre os dados na matriz antes da mão. Em primeiro lugar, um "valor pivot " deve ser escolhido. Este é o valor que o desenvolvedor acredita que está perto da média de todos os valores na matriz. Quanto melhor for o valor do pivô , mais rápido o Quicksort irá executar. Em seguida , a matriz é dividida em dois grupos: aqueles acima do valor de pivô são movidos para o lado direito , e aqueles abaixo do valor de pivô são movidos para o lado esquerdo . Felizmente, os dois lados estão perto de ser iguais em tamanho , mas eles não precisam ser exatamente o mesmo . Por fim , o algoritmo de classificação rápida começa do zero em cada lado , com novos valores de rotação escolhidos , e estas metades são divididas em quartos. Quando o quicksort subdividiu a matriz de modo que cada secção tem apenas um valor , a matriz foi classificada.

Como a maioria dos algoritmos recursivos , isso pode ser difícil de visualizar , de modo que são incentivados a ver o passo a passo - exemplo dado na terceira referência.

Anterior :

Próximo : No
  Os artigos relacionados
·Como escrever um programa em C que irá ler em um arqui…
·Como Fazer um Botão visível no Visual C 
·Como fazer o download e loja de mídia com o iPhone SDK…
·Como converter Celsius para Fahrenheit em C + + sem for…
·C + + Tipos de Dados 
·Como construir uma barra de progresso no XCode 
·A diferença entre Filestream & StreamReader 
·Alternativas ao Boomerang Decompiler 
·Quais são Visual C Regiões 
·Como inserir um Array no primeiro elemento usando C + +…
  Artigos em destaque
·Como escrever um driver de dispositivo PCI Simples 
·Objetivo de Métodos CString 
·Como usar Passcodes em uma matriz unidimensional 
·Como compilar C e C + + Juntos 
·Como Prevenir Uso Múltiplo de um arquivo de cabeçalho…
·Como editar o SQL em um iPhone 
·Como escrever um programa em C para encontrar a série …
·Como executar um script CGI CPP na Web 
·Como converter Reality Fábrica Em XNA 
·Par /Ímpar Função de Programação C 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados