Em termos gerais, existem os algoritmos de classificação , como classificação de inserção, classificação de bolhas e classificação, que você normalmente deve usar apenas em circunstâncias especiais; Quicksort, que é o pior caso O ( n 2 ), mas muitas vezes O ( n log n ) com boas constantes e propriedades e que pode ser usado como um procedimento de classificação de uso geral; os algoritmos O ( n log n ) , como merge-sort e heap-sort, que também são bons algoritmos de classificação de uso geral; e o O ( nO ( n2)O ( n2)O ( n logn )O ( n logn ) ou algoritmos de classificação lineares para listas de números inteiros, como classificação de raiz, intervalo e contagem, que podem ser adequados, dependendo da natureza dos números inteiros nas suas listas.O ( n )
Se os elementos em sua lista são tais que tudo que você sabe sobre eles é o relacionamento total de pedidos entre eles, os algoritmos de classificação ideais terão complexidade . Esse é um resultado bastante interessante e sobre o qual você poderá encontrar facilmente detalhes on-line. Os algoritmos de classificação linear exploram informações adicionais sobre a estrutura dos elementos a serem classificados, em vez de apenas o relacionamento total da ordem entre os elementos.Ω ( n logn )
De maneira ainda mais geral, a otimização de um algoritmo de classificação depende intimamente das suposições que você pode fazer sobre o tipo de lista que você classificará (bem como o modelo de máquina em que o algoritmo será executado, o que pode tornar a classificação ainda mais ruim) algoritmos a melhor escolha; considere a classificação de bolhas em máquinas com uma fita para armazenamento). Quanto mais fortes forem as suas suposições, mais chances o seu algoritmo poderá cortar. Sob suposições muito fracas sobre a eficiência com que você pode determinar a "classificação" de uma lista, a complexidade ideal do pior caso pode ser .Ω ( n ! )
Esta resposta lida apenas com complexidades. O tempo real de execução das implementações de algoritmos dependerá de um grande número de fatores que são difíceis de explicar em uma única resposta.