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]
相关推荐
weixin_446260851 分钟前
Typora 插件开发实战:基于 JavaScript/HTML 构建定制化 Markdown 扩展
开发语言·javascript·html
如烟花的信页2 分钟前
某管理服务平台点选逆向分析
javascript·爬虫·python·js逆向
好家伙VCC4 分钟前
Rust+Bioinfo:80ms极速SNP注释引擎
java·开发语言·算法·rust
qq4356947018 分钟前
Vue02
开发语言·前端·javascript
代码中介商9 分钟前
C++11右值引用与移动语义深度解析
开发语言·c++
码上有光10 分钟前
c++:二叉搜索树(map和set的底层结构)
开发语言·c++·递归·二叉搜索树
AsiaLYF15 分钟前
Kotlin MutableSharedFlow: emit vs tryEmit 详解
开发语言·前端·kotlin
buxiangshui_cd16 分钟前
Conda命令
开发语言·python·conda
踏着七彩祥云的小丑17 分钟前
Go学习第2天:程序结构+基础语法+数据类型
开发语言·学习·golang·go
小李云雾18 分钟前
Pinia:Vue3 全局状态管理从入门到精通
前端·javascript·vue.js