LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

JavaScript数组排序最常用的4种方式

admin
2024年12月19日 22:57 本文热度 197

1.  sort() 方法

这是数组原生的排序方法。如果没有传入比较函数,元素会被转换为字符串后按照字符编码顺序进行排序。

let fruits = ["cherry", "apple", "banana"];

fruits.sort();

console.log(fruits);

// 输出: ["apple", "banana", "cherry"] 


若要按照自定义规则排序(如数字大小排序),可以传入比较函数。比较函数接收两个参数 a 和 b ,当 a - b < 0 时, a 排在 b 前面;当 a - b = 0 时, a 和 b 位置不变;当 a - b > 0 时, a 排在 b 后面。
 例如,对数字数组从小到大排序:

let numbers = [5, 3, 8, 2];

numbers.sort((a, b) => a - b);

console.log(numbers);

// 输出: [2, 3, 5, 8] 


2. 冒泡排序

这是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

function bubbleSort(arr) {

    let n = arr.length;

    for (let i = 0; i < n - 1; i++) {

        for (let j = 0; j < n - i - 1; j++) {

            if (arr[j] > arr[j + 1]) {

                let temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp;

            }

        }

    }

    return arr;

}

let numbers = [5, 3, 8, 2];

console.log(bubbleSort(numbers));

// 输出: [2, 3, 5, 8] 


3. 插入排序

 插入排序的基本操作是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。
- 示例如下:

function insertionSort(arr) {

    for (let i = 1; i < arr.length; i++) {

        let current = arr[i];

        let j = i - 1;

        while (j >= 0 && arr[j] > current) {

            arr[j + 1] = arr[j];

            j--;

        }

        arr[j + 1] = current;

    }

    return arr;

}

let numbers = [5, 3, 8, 2];

console.log(insertionSort(numbers));

// 输出: [2, 3, 5, 8] 


4. 选择排序

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

function selectionSort(arr) {

    for (let i = 0; i < arr.length; i++) {

        let minIndex = i;

        for (let j = i + 1; j < arr.length; j++) {

            if (arr[j] < arr[minIndex]) {

                minIndex = j;

            }

        }

        if (minIndex!== i) {

            let temp = arr[i];

            arr[i] = arr[minIndex];

            arr[minIndex] = temp;

        }

    }

    return arr;

}

let numbers = [5, 3, 8, 2];

console.log(selectionSort(numbers));

// 输出: [2, 3, 5, 8]


该文章在 2024/12/20 11:05:55 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved