LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

JavaScript數(shù)組排序最常用的4種方式

admin
2024年12月19日 22:57 本文熱度 453

1.  sort() 方法

這是數(shù)組原生的排序方法。如果沒有傳入比較函數(shù),元素會(huì)被轉(zhuǎn)換為字符串后按照字符編碼順序進(jìn)行排序。

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

fruits.sort();

console.log(fruits);

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


若要按照自定義規(guī)則排序(如數(shù)字大小排序),可以傳入比較函數(shù)。比較函數(shù)接收兩個(gè)參數(shù) a 和 b ,當(dāng) a - b < 0 時(shí), a 排在 b 前面;當(dāng) a - b = 0 時(shí), a 和 b 位置不變;當(dāng) a - b > 0 時(shí), a 排在 b 后面。
 例如,對(duì)數(shù)字?jǐn)?shù)組從小到大排序:

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

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

console.log(numbers);

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


2. 冒泡排序

這是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果它們的順序錯(cuò)誤就把它們交換過來。

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. 插入排序

 插入排序的基本操作是將一個(gè)數(shù)據(jù)插入到已經(jīng)排好序的有序數(shù)據(jù)中,從而得到一個(gè)新的、個(gè)數(shù)加一的有序數(shù)據(jù)。
- 示例如下:

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. 選擇排序

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再?gòu)氖S辔磁判蛟刂欣^續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。

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 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲中文字幕自拍a人片 | 在线看片免费人成视频免费大片 | 中文字幕精品亚洲无线一男人 | 日本欧美国产精品一区二区 | 久草免费福利资源站在线观看 | 亚洲人在线成视频 |