devterview_$ iniciar simulação

Ordenação estável e por que isso importa

MédioPlenoOrdenação

Pergunta

O que significa uma ordenação ser 'estável', e dê um caso em que a estabilidade muda o resultado.

Resposta esperada

Estável = elementos com a mesma chave de ordenação mantêm a ordem relativa que tinham antes. Importa quando você ordena em várias passadas por critérios diferentes: pra ordenar uma tabela 'por departamento e, dentro dele, por data de entrada', você ordena por data (estável) e depois por departamento (estável) — a segunda passada preserva a ordem de data dentro de cada departamento. Com um sort instável, a segunda passada embaralha os empates da primeira e você perde o critério secundário. Merge sort é estável; quicksort e heapsort não são por natureza. Muitas linguagens garantem sort estável (`Array.prototype.sort` em JS moderno, `sorted`/`list.sort` em Python via Timsort); quando não garantem, você inclui o critério de desempate explicitamente na chave.

Por que perguntam isso

Pergunta pleno. Sinal de domínio: o caso de ordenação multi-critério em passadas, e saber quais algoritmos/linguagens garantem estabilidade.

#ordenacao#estabilidade#timsort
publicidade

Relacionadas