7-algorithm练习-最小值-奇偶性

237 阅读1分钟
问题1:编写一个数字数组作为输入值并返回数组中
最小数字的算法。(找到数组中的最小值)

问题2:编写一个将数字作为输入值并判断奇偶性的算
法,奇数返回“false”,偶数返回“true”。(奇偶判断)
要求:除了写出算法以外,还需要确定时间复杂度以及针对这两个算法可能出现的不同情况。

function getMin(numbers = []) {
    if (!Array.isArray(numbers) || (Array.isArray(numbers) && numbers.length === 0)) {
        throw Error(`numbers 数组为空或者不是数组, numbers:${numbers}`);
    }
    let result = numbers[0];
    for (const number of numbers) {
        if (result > numbers[i]) {
            result = number;
        }
    }
    return result;
    // return Math.min(...numbers);
}

// 时间复杂度: O(n)

// console.log('getMin([100, 1, -2, 22])', getMin([100, 1, -2, 22]));
// console.log('getMin([100, 1, -2, 22])', getMin([]));
// console.log('getMin([100, 1, -2, 22])', getMin(222));
// console.log('getMin([100, 1, -2, 22])', getMin(true));
console.log('getMin([100, 1, -2, 22])', getMin({}));

// 是否为偶数
function isEven(number) {
    return number % 2 === 0;
}

// 时间复杂度: O(1)
console.log('isEven(2)', isEven(2));
console.log('isEven(3)', isEven(3));
console.log('isEven(9)', isEven(9));
console.log('isEven(0)', isEven(0));
// isEven(2) true
// isEven(3) false
// isEven(9) false
// isEven(0) true