js选择排序

javascript 复制代码
    function selectionSort(arr) {
        const len = arr.length
 
        // 每一次外循环确定一个最小值(因为是作比较,次数是数组长度-1)
        for(let i = 0; i < len - 1; i++) {
            // 假设当前索引为 i 的元素是最小的
            let minIndex = i
 
            // 每一次内循环两两比较(因为要比完数组剩下所有数,所以 j < 数组长度len)
            for(let j = i + 1; j < len; j++) {
                if(arr[j] < arr[minIndex]) {
                    minIndex = j
                }
            }
 
            // 将最小元素与当前索引的元素进行交换
            [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]
        }
        return arr
    }
    
    const nums = [4, 5, 2, 7, 8]
    console.log(selectionSort(nums))  // [2, 4, 5, 7, 8]
相关推荐
脏脏a1 分钟前
类与对象(上):面向过程到面向对象的跨越,类的定义、封装与 this 指针等核心概念深度剖析
开发语言·c++
熊猫比分站20 分钟前
[特殊字符] Java/Vue 实现体育比分直播系统,支持多端实时更新
java·开发语言·vue.js
inferno44 分钟前
Maven基础(一)
java·开发语言·maven
csbysj20201 小时前
SQLite Truncate Table: 完全删除表中的数据
开发语言
tung tung tung sahur1 小时前
领略 Rust 抽象之美:自定义迭代器实现全解析
开发语言·后端·rust
ftpeak1 小时前
《Rust MP4视频技术开发》第八章:生成MP4
开发语言·rust·音视频·mp4
多则惑少则明1 小时前
Vue开发系列——自定义组件开发
前端·javascript·vue.js
一叶难遮天2 小时前
开启RN之旅——前端基础
前端·javascript·promise·js基础·es6/ts·npm/nrm
好学且牛逼的马2 小时前
【SSM框架 | day25 spring IOC 与 DI 注解开发】
java·开发语言
BetterChinglish2 小时前
html5中canvas图形变换transform、setTransform原理(变换矩阵)
javascript·html5·canvas·变换矩阵