Módulo 3 - Filas: o primeiro a chegar é o primeiro a sair

Fila de prioridade: quando furar a fila é justo

8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 12/07/2026

O que você vai aprender

  • Entender a fila de prioridade como uma fila em que a urgência decide a saída.
  • Diferenciar a fila comum (por chegada) da fila de prioridade (por importância).
  • Reconhecer o critério de desempate quando as prioridades são iguais.
  • Identificar usos reais como pronto-socorro e tarefas urgentes.

Quando a ordem de chegada não basta

A fila comum é justa quando todos são iguais, mas há situações em que tratar todos igual seria injusto. O melhor exemplo é o pronto-socorro. Se o hospital atendesse estritamente por ordem de chegada, alguém com um problema grave poderia esperar atrás de dez casos leves e correr risco. Por isso o pronto-socorro usa triagem: um caso mais urgente é atendido antes, mesmo tendo chegado depois. Essa lógica é a fila de prioridade. Ela continua sendo uma fila, com espera e atendimento, mas a ordem de saída não é mais só a de chegada: cada elemento carrega uma prioridade, e o de maior prioridade é o próximo a sair.

Repare que a prioridade não é uma quebra de regra, é uma regra diferente e explícita. Na fila comum, a única informação que importa é quando você chegou. Na fila de prioridade, cada elemento traz dois dados: a informação em si e a sua importância. O programa, na hora de escolher quem sai, compara as importâncias e escolhe a maior. E quando duas importâncias empatam, aí sim a fila volta a usar a ordem de chegada como critério de desempate, para que quem esperou mais entre dois casos igualmente urgentes seja atendido primeiro. É a combinação das duas regras que torna a estrutura tão útil.

Uma sala de espera com quatro pacientes, cada um com uma etiqueta de prioridade: um vermelho grave, dois verdes leves e um amarelo médio. Uma seta indica que o paciente vermelho, que chegou por último, é chamado primeiro para o atendimento, passando na frente dos verdes que chegaram antes. Abaixo, a legenda maior prioridade sai antes.
Na fila de prioridade, o caso grave (vermelho) é atendido antes dos leves, mesmo tendo chegado depois.

A ordem de saída segue a prioridade

Para prever quem sai de uma fila de prioridade, esqueça por um momento a ordem de chegada e olhe primeiro para as prioridades. O de maior importância vai na frente, seja qual for a hora em que entrou. Depois que ele sai, a próxima saída é o de maior importância entre os que restaram, e assim por diante. Só quando duas importâncias forem iguais é que você recorre à ordem de chegada para desempatar. É um raciocínio em duas camadas: primeiro compara a urgência; se empatar, compara a chegada. Treinar essa ordem de decisão é o que impede o erro de tratar a fila de prioridade como se fosse uma fila comum.

🎮 Jogo da aula

Ordem de atendimento no pronto-socorro

Estes pacientes chegaram e cada um tem uma prioridade (número maior é mais urgente). Coloque-os na ordem correta de atendimento, do primeiro ao último a ser chamado.

    Onde a fila de prioridade trabalha

    A fila de prioridade aparece sempre que algumas tarefas são mais importantes que outras. Um sistema operacional decide qual programa roda a seguir dando prioridade a processos críticos. Um servidor de tarefas pode marcar certos trabalhos como urgentes para que passem na frente da fila. Aplicativos de mensagem podem priorizar notificações importantes. E, num nível mais avançado, vários algoritmos de caminho, como os que encontram a rota mais curta num mapa com distâncias, usam uma fila de prioridade para escolher sempre o próximo ponto mais promissor. Você não vai implementar tudo isso agora, mas reconhecer que a estrutura por trás é uma fila de prioridade já muda a forma como você lê esses problemas.

    Teste rápido

    Numa fila de prioridade, quem é o próximo a sair?

    Perguntas frequentes

    A fila de prioridade ainda é uma fila?
    É, no sentido de que os elementos entram, esperam e são atendidos um a um. O que muda é o critério de quem sai: em vez de ser só a ordem de chegada, é a prioridade. Se todos tiverem a mesma prioridade, ela se comporta exatamente como uma fila comum, atendendo por ordem de chegada.
    Como se representa a prioridade de cada elemento?
    Geralmente por um número ou por um nível. Pode ser um número em que o maior é mais urgente, ou o contrário, dependendo da convenção. Pode ser também um rótulo como alta, média e baixa. O importante é que cada elemento carregue, junto da informação, esse dado de importância que o programa compara na hora de escolher quem sai.
    O que acontece quando duas prioridades são iguais?
    Aí entra o desempate. O critério mais comum e mais justo é a ordem de chegada: entre dois elementos igualmente urgentes, sai primeiro o que esperava há mais tempo. Isso mantém uma parte da justiça da fila comum dentro da fila de prioridade e evita que alguém fique preso para sempre.
    Furar a fila de prioridade não é injusto?
    Não, porque a regra é combinada e vale para todos. Na fila comum, furar é injusto porque quebra a única regra existente, a da chegada. Na fila de prioridade, passar na frente por urgência é a própria regra, conhecida por todos. O pronto-socorro mostra bem: atender o caso grave antes é o mais justo, não o contrário.
    A fila de prioridade é mais difícil de programar que a comum?
    Um pouco, porque a cada saída é preciso encontrar o elemento de maior prioridade, não só pegar o da frente. Existem estruturas eficientes para isso, como o heap, estudadas em cursos mais avançados. No nível da lógica, o que importa é entender a regra: comparar prioridades e, no empate, a chegada.
    Onde já usei uma fila de prioridade sem perceber?
    Provavelmente em vários lugares. A triagem de um pronto-socorro, a ordem em que um computador executa programas, a priorização de e-mails importantes, a escolha da próxima rota num aplicativo de mapas. Sempre que algo urgente passa na frente de algo comum de forma organizada, há uma fila de prioridade por trás da cena.

    Fontes

    Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.