作家
登录

十大经典排序算法的JS版

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

  1. function shellSort(arr) { 
  2.  
  3.     var len = arr.length, 
  4.  
  5.         temp
  6.  
  7.         gap = 1; 
  8.  
  9.     console.time('希尔排序耗时:'); 
  10.  
  11.     while(gap < len/5) {          //动态定义距离序列 
  12.  
  13.         gap =gap*5+1; 
  14.  
  15.     } 
  16.  
  17.     for (gap; gap > 0; gap = Math.floor(gap/5)) { 
  18.  
  19.         for (var i = gap; i < len; i++) { 
  20.  
  21.             temp = arr[i]; 
  22.  
  23.             for (var j = i-gap; j >= 0 && arr[j] > temp; j-=gap) { 
  24.  
  25.                 arr[j+gap] = arr[j]; 
  26.  
  27.             } 
  28.  
  29.             arr[j+gap] = temp
  30.  
  31.         } 
  32.  
  33.     } 
  34.  
  35.     console.timeEnd('希尔排序耗时:'); 
  36.  
  37.     return arr; 
  38.  
  39.  
  40. var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]; 
  41.  
  42. console.log(shellSort(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]  

(1)算法简介

(2)算法描述和实现

n个记录的直接选择排序可经由n-1趟直接选择排序获得有序结不雅。具体算法描述如下:

  • <1>.初始状况:无序区为R[1..n],有序区为空;
  • <2>.第i趟排序(i=1,2,3…n-1)开端时,当前有序区和无序区分别为R[1..i-1]和R(i..n)。该趟排序大年夜当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n)分别变为记录个数增长1个的新有序区和记录个数削减1个的新无序区;
  • <3>.n-1趟停止,数组有序化了。

Javascript代码实现:

  1. function selectionSort(arr) { 
  2.  
  3.     var len = arr.length; 
  4.  
  5.     var minIndex, temp
  6.  
  7.     console.time('选择排序耗时'

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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