

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Considere o algoritmo abaixo, em Python, que busca o menor elemento de uma lista e remove-o repetidamente, formando uma nova lista ordenada:
def ordenar(lista):
resultado = []
while lista:
menor = min(lista)
resultado.append(menor)
lista.remove(menor)
return resultado
Esse algoritmo, apesar de funcional, apresenta baixa eficiência. A complexidade de tempo resultante é:
O(n log n), equivalente ao Merge Sort.
O(n2), pois cada iteração executa operações lineares sobre a lista restante.
O(n3), em razão das operações encadeadas de busca e remoção.
O(n), já que cada elemento é visitado apenas uma vez.
O(log n), pois utiliza a função min() otimizada internamente.