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]
相关推荐
天外飞雨道沧桑2 小时前
TypeScript 中 omit 和 record 用法
前端·javascript·typescript
kkeeper~3 小时前
0基础C语言积跬步之深入理解指针(5下)
c语言·开发语言
一直不明飞行3 小时前
Java的equals(),hashCode()应该在什么时候重写
java·开发语言·jvm
盲敲代码的阿豪4 小时前
Python 入门基础教程(爬虫前置版)
开发语言·爬虫·python
basketball6164 小时前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
互联科技报4 小时前
2026超融合选型:Top5品牌与市场格局解读
开发语言·perl
weixin199701080164 小时前
[特殊字符] 智能数据采集:数字化转型的“数据石油勘探队”(附Python实战源码)
开发语言·python
想唱rap5 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
暗冰ཏོ5 小时前
VUE面试题大全
前端·javascript·vue.js·面试
@杰克成5 小时前
Java学习30
java·开发语言·学习