Developer Toolbox

Ordenação por intercalação

Divide a lista ao meio, ordena cada metade e depois junta as duas metades ordenadas numa só lista ordenada.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(n)
  • sim
  • não
  • a comparar
  • a mover
  • na posição final
0 / 263 passos

↓ dividir ↓ intercalar Intercalações feitas: 0 de 23

Comparações Escritas

Carregue em Reproduzir: as linhas mostram como o custo cresce

Carregue em Reproduzir ou avance passo a passo pelo algoritmo.

Espaço: reproduzir ou pausar. Setas esquerda e direita: avançar passo a passo. Home e End: saltar.

Experimente: Escolha uma lista com poucos valores únicos. Se dois valores são iguais, tira-se primeiro o da metade esquerda, por isso a ordem mantém-se.

Como funciona

Vai dividindo a lista até cada pedaço ter um só valor, que já está ordenado. Depois junta os pedaços aos pares: compara o primeiro valor de cada um e tira o menor, e repete até acabar. A linha de cima na animação é o espaço extra usado ao juntar.

Quando é uma boa escolha

Quando é preciso rapidez que se mantenha boa mesmo no pior caso e os valores iguais têm de manter a ordem. O Python e o Java usam ambos uma versão deste método. O ponto fraco é a memória extra de que precisa.