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]
相关推荐
Dovis(誓平步青云)8 分钟前
模拟器横评:电脑上看小说、追短剧用什么模拟器?MuMu、雷电、腾讯手游助手实测
android·java·服务器·前端·javascript·电脑
HugoStudio_SWAN10 分钟前
【按键反馈】C++ 实现键盘烟花秀
开发语言·c++·学习·程序人生
AI 编程助手GPT21 分钟前
Bun 1.4 正式发布:从 Zig 改写为 Rust,内置浏览器、图片处理和并行测试
开发语言·人工智能·后端·ai·chatgpt
paopaokaka_luck27 分钟前
基于springboot3+vue3的飞行器模型实验室预约管理系统(协同过滤算法、Echarts图形化分析)
开发语言·推荐算法
lingchen190630 分钟前
用MATLAB r2010b和r2016b求解微分方程组
开发语言·算法·matlab
xiaominlaopodaren35 分钟前
three.js最小地图运行时(十):接入离线逻辑瓦片剖面
javascript·gis·three.js
ttwosix36 分钟前
JavaEE初阶 多线程 3
java·开发语言
峥嵘life44 分钟前
Android16 系统 APEX 模块调试总结
android·大数据·开发语言
OPEN-F1 小时前
C++进阶教程:类与对象深入
java·开发语言·c++
ttwosix1 小时前
JavaEE初阶 多线程:单例模式 | 阻塞队列
java·开发语言