1. 程式人生 > 其它 >前端JS演算法之陣列排序

前端JS演算法之陣列排序

技術標籤:JS陣列排序sort氣泡排序JavaScript前端

在這裡插入圖片描述
陣列排序一直是前端面試中經常出現的問題,而大家可能經常用的就是sort排序,所以我又總結兩種排序方式,加上sort排序,一併寫了下來。

第一種方法:氣泡排序
邏輯步驟:
1、使用雙層for迴圈加if判斷
2、依次拿數組裡面的一項去跟數組裡面的每一項做比較運算,符合判斷條件的,交換兩項的位置。

let arr = [9, 5, 1, 4, 8, 6, 2, 7, 3, 0, '2', '3'];
function sorting(a) {
	// 判斷陣列是否存在,如果存在就獲得陣列長度
    var arrLength = a &&
a.length // 使用雙層迴圈 for(let i = 0; i < arrLength - 1; i++) { for(let j = i + 1; j < arrLength; j++) { // if 判斷 拿一項去跟陣列每一項比較,大於號是正序,小於號是倒序 if(a[i] > a[j]) { // 如果符合判斷條件,使用ES6解構賦值交換位置 [a[i], a[j]] = [a[j], a[i]]; } }
}; return a; }

第二種方法:插入法排序
插入排序跟氣泡排序都是使用雙層for迴圈if判斷,插入法排序是拿陣列的後邊一項和前面一項對比,如果符合條件就交換位置,而氣泡排序是即那陣列的前一項和後一項對比。接下來看程式碼

function sorting(a) {
    var arrLength = a && a.length
    for(let i = 1; i < arrLength; i++) {
        for(let j = i; j > 0; j--) {
            if(a[j] < a[
j - 1]) { [a[j], a[j - 1]] = [a[j - 1], a[j]] }; }; }; return a; }

第三種方法:sort排序

function sorting(a) {
    return a.sort((a, b)=> {
    	// a - b正序 b - a倒序
        return a - b;
    })
}

陣列排序就整理到這,大家如果有什麼其他的方法,可能留言也可以私聊,大家相互學習,共同進步。