算法学习2--选择排序与冒泡排序区别

如果您不知道什么是大O算法,请参考算法1

https://nancylyl.github.io/2020/06/15/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A01-%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/

选择排序 是链表与数组的组合,每次把 找到最小的索引 最后再进行 数组值的交换

冒泡直接是比较上一个进行数组值的交换。选择排序在消耗内存方面优于冒泡排序

选择排序 的运行效率为O(n²) 是一种较慢算法!

以下为实现代码

//选择排序
var findSmallerst = function(arr) {
    let min;
    for (let i = 0; i < arr.length - 1; i++) {

        for (let j = i + 1; j < arr.length; j++) {
            let temp = 0;
            min = i;
            if (arr[min] > arr[j]) {
                min = j;
            }
            temp = arr[i];
            arr[i] = arr[min];
            arr[min] = temp;
        }
        console.log(arr);
    }

    return arr;
}

//冒泡

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

        for (let j = i + 1; j < arr.length; j++) {
            let temp = 0;
            if (arr[i] > arr[j]) {
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
        console.log(arr);
    }

    return arr;
}

var myList = [8, 3, 2, 5, 4, 9, 44, 33];

console.log(test(myList));

你可能感兴趣的:(算法学习2--选择排序与冒泡排序区别)