Você está na página 1de 10

Fila de prioridades

Marcos Castro
Fila de prioridades
• É uma fila onde cada elemento possui uma prioridade.
• Essa prioridade determina a posição de um elemento na fila,
portanto, determina quem deve ser o primeiro a ser removido da fila.
• Numa fila SEM prioridade, sempre removemos o elemento do início
da fila de acordo com a propriedade FIFO (first in, first out).
• Já na fila de prioridades, o elemento que será removido é
determinado pela prioridade.
• A fila de prioridades possui o critério de ordenação de acordo com a
prioridade.
Fila de prioridades
• Onde posso aplicar?
• Fila de pacientes que esperam por um transplante de algum órgão.
• A prioridade poderia ser o quão grave é o estado de saúde desse paciente.
• Caminhos mínimos (algoritmo de Dijkstra).
• A prioridade seria o menor custo.
• Escalonamento de processos (agendador de tarefas).
• A prioridade poderia ser o processo que possui o menor tempo restante.
Fila de prioridades
• Vamos construir uma fila de prioridades
• Irei inserir o Mário com prioridade 10...

10
Fila de prioridades
• Vamos construir uma fila de prioridades
• Irei inserir o Quico com prioridade 20...

20 10

O Quico foi para o início da fila


porque possui prioridade maior!
Fila de prioridades
• Vamos construir uma fila de prioridades
• Irei inserir o Michael com prioridade 5...

20 10 5
Fila de prioridades
• Vamos construir uma fila de prioridades
• Irei inserir o Batman com prioridade 8...

20 10 8 5
Fila de prioridades
• Existem vários tipos de implementações:
• Lista encadeada
• Heap binária
• Array desordenado
• Array ordenado
• A escolha do tipo de implementação depende da aplicação.
• Cada tipo de implementação possui um custo diferente em relação às
operações (inserção, remoção).
Fila de prioridades
• Considerando que N é a quantidade de elementos da fila:
• A inserção e remoção na heap binária possui custo O(logN).
• Já a inserção no array ordenado possui custo O(N) e a remoção O(1).
• A inserção em um array desordenado possui custo O(1) e a remoção O(N).
• A inserção em uma lista encadeada possui custo O(N) e a remoção O(1).
Dúvidas?

mcastrosouza@live.com
www.geeksbr.com
www.youtube.com/c/marcoscastrosouza
www.twitter.com/mcastrosouza
www.facebook.com/bloggeeksbr