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]
相关推荐
3秒一个大6 小时前
HTML5 与 JavaScript 中的二进制数据处理:ArrayBuffer 与 TextEncoder/Decoder 实践
javascript
黑客思维者7 小时前
Python大规模数据处理OOM突围:从迭代器原理到TB级文件实战优化
开发语言·python·github·迭代器·oom
purpleseashell_Lili7 小时前
如何学习 AG-UI 和 CopilotKit
javascript·typescript·react
繁华似锦respect7 小时前
C++ 智能指针底层实现深度解析
linux·开发语言·c++·设计模式·代理模式
lkbhua莱克瓦247 小时前
IO流练习(加密和解密文件)
java·开发语言·笔记·学习方法·io流·io流练习题
偶像你挑的噻7 小时前
3.Qt-基础布局以及事件
开发语言·数据库·qt
LSL666_8 小时前
4 jQuery、JavaScript 作用域、闭包与 DOM 事件绑定
前端·javascript·html
小飞侠在吗8 小时前
vue computed 和 watch
前端·javascript·vue.js
CHANG_THE_WORLD8 小时前
Python 学习三 Python字符串拼接详解
开发语言·python·学习
诸葛老刘8 小时前
next.js 框架中的约定的特殊参数名称
开发语言·javascript·ecmascript