Carregando...
Carregando...
Carregando...
Considere a seguinte implementação em Python de um algoritmo de ordenação: def func(l, r): if len(l) == 0: return r if len(r) == 0: return l res = [] idx_l = idx_r = 0 while len(res) < len(l) + len(r): if l[idx_l] <= r[idx_r]: res.append(l[idx_l]) idx_l += 1 else: res.append(r[idx_r]) idx_r += 1 if idx_r == len(r): res += l[idx_l:] break if idx_l == len(l): res += r[idx_r:] break return res def ordena(v): if len(v) < 2: return v meio = len(v) // 2 return func( l = ordena(v[:meio]), r = ordena(v[meio:])) O algoritmo de ordenação implementado acima é o:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
A resposta correta é: “Mergesort” JUSTIFICATIVA Resolução: O algoritmo realiza a divisão do vetor ao meio recursivamente até que seja obtido apenas um elemento em cada subvetor. Em seguida, ele chama a função func para cada subvetor, a qual faz a intercalação entre dois subvetores já ordenados.