O Wiki tem uma boa folha de dicas, mas não envolve não. de comparações ou swaps. (embora o número de swaps geralmente decida sua complexidade). Então eu criei o seguinte. As informações a seguir estão corretas? Informe-me se houver algum erro, eu o corrigirei.
Classificação de inserção:
- Caso médio / pior caso: ; acontece quando a entrada já está classificada em ordem decrescente
- Melhor caso: ; quando a entrada já estiver classificada
- Nº de comparações: no pior caso & no melhor caso
- No. de swaps: no pior / caso médio e no melhor caso
Classificação da seleção:
- Caso médio / pior caso / melhor caso:
- Nº de comparações:
- Nº de swaps: no pior / caso médio e na melhor das hipóteses No máximo, o algoritmo exige N swaps, depois que você troca um elemento no lugar, nunca o toca novamente.
Mesclar Classificação:
- Caso médio / pior caso / melhor caso: ; não importa se a entrada é classificada ou não
- Nº de comparações: no pior dos casos & no melhor dos casos; assumindo que estamos mesclando duas matrizes de tamanho n & m onde
- Nº de swaps: sem swaps! [mas requer memória extra, não classificação no local]
Ordenação rápida:
- Pior caso : ; acontece entrada já está classificada
- Melhor caso : ; quando o pivô divide o array exatamente pela metade
- Nº de comparações: no pior dos casos & no melhor dos casos
- Nº de swaps: no pior dos casos & no melhor dos casos
Tipo de bolha:
- Pior caso :
- Melhor caso : ; já classificado
- Nº de comparações: no pior dos casos e no melhor caso
- Nº de swaps: no pior dos casos & no melhor dos casos
Pesquisa linear:
- Pior caso : ; chave de pesquisa ausente ou último elemento
- Melhor caso : ; primeiro elemento
- Nº de comparações: no pior dos casos & no melhor dos casos
Pesquisa binária:
- Pior / Média:
- Melhor caso : ; quando chave é elemento do meio
- Nº de comparações: no pior / caso médio e no melhor dos casos
Respostas:
Para algoritmos gerais de classificação por bolhas, as piores comparações sãoΘ(n2) Mas para o algoritmo de caso especial em que você adiciona um sinalizador para indicar que houve uma troca no passe anterior. Se não houver swaps, sairemos do loop, pois o array já está classificado. Nesse caso, as comparações sãon não 0.
Para a classificação Rápida, você mencionou que as trocas de pior caso sãon2 . O pior cenário para a classificação rápida é quando todos os elementos estão na ordem de classificação, portanto não haverá swaps, portanto, deve ser zero.
fonte