Tradicionalmente, sé que en la mayoría de los casos los algoritmos dividen y conquistan dividen la matriz principal en dos subarreglos para realizar la operación deseada y luego vuelven a fusionarlos. En mi caso, intento dividir la matriz principal en tres subarreglos en lugar de dos y fusionarlos todos juntos para determinar la suma de todos los enteros en la matriz. Sin embargo, durante la prueba, se muestra como indefinido. Supongo que esto se debe a que mid1 y mid2 de alguna manera no están definidos correctamente o algo está mal con mi recursividad.
Mi código (compilado con Node.js):
function divideAndConquerSum(a) { return divideAndConquerSumMerge(a, 0, a.length - 1); } function divideAndConquerSumMerge(a, low, high) { if (high == low) return a[low]; var mid1 = low + (high - low) / 3; var mid2 = mid1 + (high - low) / 3; return ( divideAndConquerSum(a, low, mid1 - 1) + divideAndConquerSum(a, mid1 + 1, mid2 - 1) + divideAndConquerSum(a, mid2 + 1, high) ); } let a = [1, 5, -1, 4]; console.log(divideAndConquerSum(a));La salida esperada debería ser 9, pero en su lugar devuelve indefinido. Editar: ya no tiene funciones sobrecargadas. Ahora da un error de desbordamiento de pila.