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]
相关推荐
小则又沐风a16 小时前
STL库: string类
开发语言·c++
菜菜小狗的学习笔记16 小时前
八股(二)Java集合
java·开发语言
星乐a16 小时前
String 不可变性与常量池深度解析
java·开发语言
captain37616 小时前
ACM模式下Java输入输出函数为什么会超时?及解决方法
java·开发语言
唐叔在学习16 小时前
Python移动端应用消息提醒开发实践
开发语言·python
暴力求解16 小时前
C++ ---string类(三)
开发语言·c++
Pocker_Spades_A16 小时前
Python快速入门专业版(五十七)——POST请求与模拟登录:从表单分析到实战(以测试网站为例)
开发语言·python
Cobyte16 小时前
4.响应式系统基础:从发布订阅模式的角度理解 Vue3 的数据响应式原理
前端·javascript·vue.js
晓得迷路了16 小时前
栗子前端技术周刊第 124 期 - ESLint v10.2.0、React Native 0.85、Node.js 25.9.0...
前端·javascript·eslint
道清茗17 小时前
【RH294知识点汇总】第 3 章 《 管理变量和事实 》1
开发语言·python