徐向博 / Imin.

js算法:冒泡排序和选择排序
作者:Imin 时间:2021-10-20 分类: 前端

常规的数组排序算法,用于数字类型的一维数组排序。做个记录,代码如下:


    /**
     * 冒泡排序法
     */
    const bubble = function(data){
        let runIndex = 0; // 当前对比的索引
        while(runIndex < data.length){ // 进入循环,直到最后一位
            data.map((item, index) => { // 遍历源数据,对比当前位和下一位的大小
                if(item > data[index + 1]){ // 如果当前位大于下一位,则互换位置
                    data[index] = data[index + 1];
                    data[index + 1] = item;
                }
            })
            runIndex++;
        }
        return data;
    }

    /**
     * 选择排序法
     */
    const selector = function(data){
        let run = true; // 是否继续循环
        let minNumberIndex = 0; // 默认最小数的索引
        let result = []; // 存储结果的数组
        while(run){ // 进入循环,直到 run = false
            data.map((item, index) => { // 遍历源数据,找出当前数组内的最小数
                if(item < data[minNumberIndex]) minNumberIndex = index;
            })
            result.push(data[minNumberIndex]); // 向结果集中添加最小数
            data.splice(minNumberIndex, 1); // 在源数据中移除最小数,进入下一次循环
            if(data.length == 0) run = false; // 如果源数据的长度为0,终止循环,排序完成
        }
        return result;
    }

本文标签: js算法 冒泡算法