JS常用数组排序方法汇总


JS常用数组排序方法汇总

  1. Bubble_Sort 冒泡排序
  • 每一轮从数组头部开始,每两个元素比较大小并进行交换 直到一轮当中最大或最小的值被放在数组的尾部,然后,不断重复这个过程,直到所有的元素都排好位置.
    // var arr1 = [1, 3, 14, 520, 99, 2, 6];
    var arr1 = [2, 3, 7, 6, 4, 5, 1];
    for (var i = 0; i < arr1.length; i++) &#123; 
        for (var j = 0; j < arr1.length - i - 1; j++) &#123; 
            if (arr1[j] > arr1[j + 1]) &#123;    
                var temp = arr1[j];
                arr1[j] = arr1[j + 1];
                arr1[j + 1] = temp;
            &#125;
        &#125;
    &#125;
    console.log(arr1);
  • 演算过程
    初始值:2, 3, 7, 6, 4, 5, 1
    1. 2, 3, 6, 7, 4, 5, 1
    2. 2, 3, 6, 4, 7, 5, 1
    3. 2, 3, 4, 6, 7, 5, 1
    4. 2, 3, 4, 6, 5, 7, 1
    5. 2, 3, 4, 5, 6, 7, 1
    6. 2, 3, 4, 5, 1, 6, 7
  1. Insertion_Sort 插入排序
  • 不断的将尚未排好序的数插入到已经排好序的部分.
    var arr2 = [1, 3, 14, 520, 99, 2, 6];
    for (var i = 0; i < arr2.length; i++) &#123;
        var n = i;
        while (arr2[n] > arr2[n + 1] && n >= 0) &#123;
            var temp = arr2[n];
            arr2[n] = arr2[n + 1];
            arr2[n + 1] = temp;
            n--;
        &#125;
    &#125;
    console.log(arr2);
  • 演算过程
    初始值:2, 3, 7, 6, 4, 5, 1

    1. 1, 3, 7, 6, 4, 5, 2
    2. 1, 2, 7, 6, 4, 5, 3
    3. 1, 2, 3, 6, 4, 5, 7
    4. 1, 2, 3, 4, 6, 5, 7
    5. 1, 2, 3, 4, 5, 6, 7
    6. 1, 2, 3, 4, 5, 6, 7
    7. 1, 2, 3, 4, 5, 6, 7
  • 冒泡排序中,经过每一轮的排序处理后,数组后端的数都是排好序的;

  • 插入排序中,经过每一轮的排序处理后,数组前端的数都是排好序的;

  1. Select_Sort 选择排序
  • 通过比较,选出最小的数放在第一位,然后在其余所有的数中选出最小的数排在第二位,以此类推,直到排序结束.

  • 在排序中每一轮比较会把最小的数移动到最前,所以相互比较的次数每一轮都会比前一轮少一次.

      var arr3 = [1, 3, 14, 520, 99, 2, 6];
      var temp;
      for (var i = 0; i < arr3.length - 1; i++) &#123;
          for (var j = i + 1; j < arr3.length; j++) &#123;
              if (arr3[i] > arr3[j]) &#123;
                  temp = arr3[i];
                  arr3[i] = arr3[j];
                  arr3[j] = temp;
              &#125;
          &#125;
      &#125;
      console.log(arr3);
      
    
  • 演算过程
    初始值:2, 3, 7, 6, 4, 5, 1

    1. 1, 3, 7, 6, 4, 5, 2
    2. 1, 2, 7, 6, 4, 5, 3
    3. 1, 2, 3, 6, 4, 5, 7
    4. 1, 2, 3, 4, 6, 5, 7
    5. 1, 2, 3, 4, 5, 6, 7
  1. sort()方法排序

     var arr4 = [1, 3, 14, 520, 99, 2, 6];
     arr4.sort(function (a, b) &#123;
         return a - b;   //正序
         // return b - a;   //倒序
     &#125;)
     console.log(arr4);
    

文章作者: overwhat
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 overwhat !
评论
  目录