源代码

function findMaxRecursive(arr, start, end) {

    if (start === end) {
        return arr[start];
    }

    // 计算中间位置
    const mid = Math.floor((start + end) / 2);

    // 递归调用:找出前半部分的最大元素值
    const max1 = findMaxRecursive(arr, start, mid);

    // 递归调用:找出后半部分的最大元素值
    const max2 = findMaxRecursive(arr, mid + 1, end);

    // 返回前半部分和后半部分的最大值中的较大者
    return Math.max(max1, max2);
}

function findMax(arr) {
    return findMaxRecursive(arr, 0, arr.length - 1);
}

const array = [10, 22, 3, 45, 6, 77, 8];
console.log(findMax(array));

运行结果

77