Merge sort em Python
Merge sort divide recursivamente e combina sublistas ordenadas.
O que é Merge sort em Python?
Merge sort divide recursivamente e combina sublistas ordenadas.
Ordene com a estratégia dividir e conquistar.
Quando usar?
- Entender algoritmos e estruturas de dados.
- Observar cada etapa e tratar casos de borda.
- Comparar tempo de execução e memória.
Visualizador de Merge sort em Python
O(n log n)Use Executar ou Passo para acompanhar cada comparação e movimento dos dados.
Código de exemplo
main.py
def merge_sort(values):
if len(values) <= 1:
return values
middle = len(values) // 2
left = merge_sort(values[:middle])
right = merge_sort(values[middle:])
result = []
left_index = right_index = 0
while left_index < len(left) and right_index < len(right):
if left[left_index] <= right[right_index]:
result.append(left[left_index])
left_index += 1
else:
result.append(right[right_index])
right_index += 1
return result + left[left_index:] + right[right_index:]
print(merge_sort([38, 27, 43, 3, 9, 82, 10]))
Saída esperada
[3, 9, 10, 27, 38, 43, 82]
Como funciona
Garante tempo O(n log n) e usa O(n) de memória adicional.
Altere os valores e execute o programa no compilador Python online CodeUtility sem instalar Python.
Exercícios práticos
Altere as entradas e teste casos de borda antes de usar conjuntos de dados maiores.
- Teste entrada vazia, um elemento e duplicados.
- Mostre o estado após cada etapa.
- Compare o desempenho com outra solução.