
Busca, ordenação e eficiência de algoritmos
Prova 12 questões 55 min
(EM13CO04) Reconhecer o conceito de metaprogramação como uma forma de generalização na construção de programas, permitindo que algoritmos sejam entrada ou saída para outros algoritmos.
Uma função de ordenação genérica recebe uma lista e uma segunda função, chamada chave, que diz qual informação de cada item deve ser comparada:
função idade(p):
devolva p.idade
alunos ← [(Ana, 17), (Bia, 15), (Caio, 16)]
escreva ordenar(alunos, chave = idade)
A lista escrita e a vantagem desse tipo de função são
Em muitas linguagens de programação, uma função pode receber outra função como entrada. Observe o pseudocódigo:
função dobro(x):
devolva 2 · x
função aplicar(f, lista):
resultado ← lista vazia
para cada x em lista faça
acrescente f(x) ao resultado
devolva resultado
escreva aplicar(dobro, [3, 5, 8])
O valor escrito e a vantagem dessa forma de programar são
a) Explique a diferença entre busca linear e busca binária, usando como exemplo a procura de um nome em uma lista de chamada.
b) Em que situação a busca linear pode ser a melhor escolha? Justifique considerando os recursos envolvidos.
Dobrar o tamanho de uma lista ordenada aumenta em apenas cerca de uma comparação o pior caso da busca binária.
( ) Verdadeiro ( ) Falso
Fonte: Base Nacional Comum Curricular (MEC). Base de dados: bncc.dev, mantido pela Profy, licença CC BY 4.0.