数组的冒泡排序和选择排序以及求组数组最大值

756 阅读1分钟

1、冒泡排序:

var arr = [1, 5, 7, 9, 16, 2, 4];
//冒泡排序,每一趟找出最大的,总共比较次数为arr.length-1次,每次的比较次数为arr.length-1次,依次递减
var temp;
for (var i = 0; i < arr.length - 1; i++) {
    for (var j = 0; j < arr.length - 1; j++) {
        if (arr[j] > arr[j + 1]) {
            temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}
console.log(arr)

2、选择排序:

var arr = [1, 5, 7, 9, 16, 2, 4];
for (var i = 0; i < arr.length - 1; i++) {
    for (var j = i + 1; j < arr.length; j++) {
        if (arr[i] > arr[j]) {
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
}
console.log(arr)

3、数组求最大值的方法:

  1. es6拓展运算符:Math.max(...arr)

  2. es5 apply:Math.max.apply(null,arr)

  3. for循环:

    let max = arr[0];

    for (let i = 0; i < arr.length - 1; i++) {

    max = max < arr[i+1] ? arr[i+1] : max }

  4. 数组sort()

    arr.sort((num1, num2) => {

    return num1 - num2 > 0

    })

    arr[0]

  5. 数组reduce

    arr.reduce((num1, num2) => {

    return num1 > num2 ? num1 : num2

    })