Divisão e conquista (Divide and Conquer).
Reduzir um problema grande a partes menores, resolver e combinar com método.
Como ordenar sem enfrentar tudo de uma vez?
dividir o intervalo
combine com método.
O intervalo inteiro é grande demais para uma decisão única. O corte cria dois subproblemas menores.
princípio /
Subproblemas menores tornam a decisão tratável; a combinação reconstrói a resposta completa.
limite que não pode ser omitido
Dividir indiscriminadamente não garante eficiência. A relação entre tamanho, quantidade de subproblemas e custo da combinação define o resultado.
A visualização usa a recorrência T(n) = 2T(n/2) + O(n) para explicar o custo do merge sort.
Um corte, uma combinação.
O destaque acompanha a decisão atual. Leia o pseudocódigo antes de trocar de linguagem; a implementação é uma tradução, não um novo algoritmo.
01function mergeSort(items) {02 if (items.length <= 1) return items;03 const middle = Math.floor(items.length / 2);04 const left = mergeSort(items.slice(0, middle));05 const right = mergeSort(items.slice(middle));06 return merge(left, right);07}