JavaScript 冒泡排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 冒泡排序相关的知识,希望对你有一定的参考价值。

  1. 常规方法

     function sort_bubble(arr) {
       var temp;
       for(var i = 0; i < arr.length;i ++) {
         for(var j = i + 1;j < arr.length;j++) {
           if (arr[i] > arr[j]) {
             temp = arr[i];
             arr[i] = arr[j];
             arr[j] = temp;
           }
         }
       }
       return arr;
     }
    
     var result = sort_bubble([1,3,5,2,64,4]);
     console.log(result);
  2. es6 对象解构赋值实现

    function sort_bubble(arr) {
       for(let x = 0; x < arr.length; x ++) {
         for (let y = x + 1; y < arr.length; y ++) {
           [arr[x],arr[y]] = arr[x] > arr[y]?[arr[y],arr[x]]:[arr[x],arr[y]]; 
         }
       }
       return arr;
     } 
    
     let result = sort_bubble([1,3,2,5,4,7]);
     console.log(result);
  3. 传入两个参(arr,fn),控制升序,降序

     function sort_bubble(arr,fn) {
       let length = arr.length;
       for(let x = 0; x < length; x ++) {
         for (let y = x + 1; y < length; y ++) {
           [arr[x],arr[y]] = fn(arr[x],arr[y])?[arr[y],arr[x]]:[arr[x],arr[y]]; 
         }
       }
       return arr;
     } 
     function ascending(x,y) {
       return x > y;
     }
     function desending(x,y) {
       return x < y;
     }
     let result1 = sort_bubble([1,3,2,5,2,1,1,2,5,4,7],ascending);
     let result2 = sort_bubble([1,3,2,5,2,1,1,2,5,4,7],desending);
     console.log(result1);
     console.log(result2);

以上是关于JavaScript 冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

为啥会这样? (冒泡排序)[JavaScript]

Javascript:冒泡排序

JavaScript 的冒泡排序

2.排序算法实现(JavaScript版)-冒泡-选择-快速排序

用JavaScript实现冒泡排序法选择排序法二分法查找

用JavaScript实现排序算法