js排序大全

排序是程序員的基本工,本篇博文就js排序算法做一總結。

冒泡排序

let bubblingSort = function (arry,order){
       let arry = [...src];
    let order = "asc";
    for(var i = 0;i<arry.length-1;i++) {
        for(var j = 0;j<arry.length-i-1;j++){
            if(arry[j]>arry[j+1]){
                //把大的數字放到後面
                var swap = arry[j];
                arry[j] = arry[j+1];
                arry[j+1] = swap;
            }
        }
    }
    if(order == "asc"){
        return arry;
    }else{
        return arry.reverse();
    }  
 }

    let a = [3,45,67,2,34,12,55];
    console.log(bubblingSort(a,"asc"));
    console.log(bubblingSort(a,"des"));

在這裏插入圖片描述

插入排序

 //插入排序

    let insertSort = function(arry,order){
        let len = arry.length;
        for (let i = 1;i < len;i++){
            let j =i;
            let temp = arry[i];
            if(order === "asc"){
                while(j>0 && arry[j-1]>temp){
                    arry[j]=arry[j-1];
                    j--;
                }
            }else{
                while(j>0 && arry[j-1]<temp){
                    arry[j]=arry[j-1];
                    j--;
                }
            }
            arry[j]=temp;    
        }
        return arry;
    }

    let b = [3,45,67,2,34,12,55];
    console.log(insertSort(b,"asc"));
    console.log(insertSort(b,"des"));

在這裏插入圖片描述

快速排序

 //快速排序
    let quickSort = function(arr,oreder) {
   if (arr.length <= 1) { return arr; } 
       let pivotIndex = Math.floor(arr.length / 2); 
       let pivot = arr.splice(pivotIndex, 1)[0];  
       let left = [];  
       let right = [];  
      for (let i = 0; i < arr.length; i++){ 
        if(order === "asc"){
            if (arr[i] < pivot) { 
              left.push(arr[i]);
            } else {
              right.push(arr[i]);
            }  
            }else{
                if (arr[i] > pivot) { 
              left.push(arr[i]);
            } else {
              right.push(arr[i]);
            }  
            }
      } 
      return quickSort(left).concat([pivot], quickSort(right));  
    };

    let c = [37,45,61,22,34,12,55];
    console.log(insertSort(c,"asc"));
    console.log(insertSort(c,"des"));

在這裏插入圖片描述

數組sort()排序

//sort()方法排序

    let sortFn = function(arry,order){
        if(order == "asc"){
            return arry.sort(function(a,b){
                return a-b;
            })
        }else{
            return arry.sort(function(a,b){
                return b-a;
            })
        }
    }

    let e = [7,5,11,22,34,1,6,7];
    console.log(insertSort(e,"asc"));
    console.log(insertSort(e,"des"));

在這裏插入圖片描述

發佈了77 篇原創文章 · 獲贊 8 · 訪問量 6875
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章