Trabalho Prático (2026): VoeHeap: Embarque Aéreo com Prioridade
Data Máxima de Entrega: 30 de outubro de 2026 -> são 3 semanas de prazo, organize-se!
Os alunos devem informar por e-mail a URL do trabalho, usando o subject "TP ALGORITMOS II 2026" -- máximo cuidado para enviar exatamente este subject, OK?
OBS.: O trabalho deve ser feito em dupla; os dois membros da equipe devem se reunir para fazer todo o código!
A companhia aérea VoeHeap adotou uma nova estratégia para embarque em suas aeronaves. Cada passageiro recebe um número correspondente à sua prioridade, não há grupos de prioridade e sim prioridades individuais.
Programe uma Fila de Prioridades para a VoeHeap implementando o Tipo Abstrato de Dados Heap. Cada passageiro tem cadastrado nome e prioridade. As operações que devem ser disponibilizadas incluem: InicHeap, InsereHeap, RemoveHeap, Heapfy, ChecaHeap, ImprimeHeap, HeapSort (entre outras que forem necessárias). O sistema aloca os passageiros no Heap atribuindo um número aleatório de prioridade para cada um, entre 1 e N, sendo N a capacidade do avião sendo embarcado em número máximo de passageiros. Mostre a ordem em que os passageiros são embarcados e removidos do Heap com RemoveHeap. Permita a qualquer momento a impressão dos passageiros que ainda devem ser embarcados com ImprimeHeap. Permita também a execução do HeapSort e impressão do vetor ordenado. que ordene todos os pacientes de acordo com sua prioridade.
O Heap deve ser implementado em vetor, exatamente como foi visto em sala de aula. Quando executar as funções Heapfy e HeapSort deve ser reportado o número de comparações e trocas de elemento de posição que foram executadas. No Relatório descreva todas as operações implementadas. Explique sua implementação das operações, em particular a operação RemoveHeap. Faça uma interface caprichada (menu de opções) para o usuário do seu sistema!
Implemente também os algoritmos de ordenação QuickSort e InsertSort. Implemente o QuickSort usando como pivô o elemento que é a mediana entre o primeiro, meio e último elementos do (sub-)vetor. Faça uma opção no menu para gerar um vetor de números aleatórios com 1024 elementos e mostre a comparação do HeapSort com o QuickSort e o InsertSort. Qual foi melhor na prática? Para cada algoritmo mostre o número de comparações e trocas de elemento de lugar.
Importante: capriche na legibilidade e organização.
Prof. Elias P. Duarte Jr.     Departamento de Informática     UFPR