作家
登录

十大经典排序算法的JS版

作者: 来源: 2017-07-18 14:59:52 阅读 我要评论

  •  
  •             if (arr[j] > arr[j+1]) {        //相邻元素两两比较 
  •  
  •                 var temp = arr[j+1];        //元故旧换 
  •  
  •                 arr[j+1] = arr[j]; 
  •  
  •                 arr[j] = temp
  •  
  •             } 
  •  
  •         } 
  •  
  •     } 
  •  
  •     return arr; 
  •  
  •  
  • var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]; 
  •  
  • console.log(bubbleSort(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]  
  • 改进冒泡排序: 设置一标记性变量pos,用于记录每趟排序中最后一次进行交换的地位。因为pos地位之后的记录均已交换到位,故在进行下一趟排序时只要扫描到pos地位即可。

    改进后算法如下:

    1. function bubbleSort2(arr) { 
    2.  
    3.     console.time('改进后冒泡排序耗时'); 
    4.  
    5.     var i = arr.length-1;  //初始时,最后地位保持不变 
    6.  
    7.     while ( i> 0) { 
    8.  
    9.         var pos= 0; //每趟开端时,无记录交换 
    10.  
    11.         for (var j= 0; j< i; j++) 
    12.  
    13.             if (arr[j]> arr[j+1]) { 
    14.  
    15.                 pos= j; //记录交换的地位 
    16.  
    17.                 var tmp = arr[j]; arr[j]=arr[j+1];arr[j+1]=tmp; 
    18.  
    19.             } 
    20.  
    21.         i= pos; //为下一趟排序作预备 
    22.  
    23.      } 
    24.  
    25.      console.timeEnd('改进后冒泡排序耗时'); 
    26.  
    27.      return arr; 
    28.  
    29.  
    30. var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]; 
    31.  
    32. console.log(bubbleSort2(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]  

    33.   推荐阅读

        一文读懂矩阵的秩和行列式的意义

      【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 作为一个工科的学生,我们经久以来会应用比如像是矩阵以及行列式这些在线性代数上的常识,在这篇文┞仿中,我>>>详细阅读


      本文标题:十大经典排序算法的JS版

      地址:http://www.17bianji.com/lsqh/36267.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)