作家
登录

十大经典排序算法的JS版

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

left + right) / 2); 
  •  
  •                 if (key < array[middle]) { 
  •  
  •                     right = middle - 1; 
  •  
  •                 } else { 
  •  
  •                     left = middle + 1; 
  •  
  •                 } 
  •  
  •             } 
  •  
  •             for (var j = i - 1; j >= left; j--) { 
  •  
  •                 array[j + 1] = array[j]; 
  •  
  •             } 
  •  
  •             array[left] = key
  •  
  •         } 
  •  
  •         console.timeEnd('二分插入排序耗时:'); 
  •  
  •         return array; 
  •  
  •     } else { 
  •  
  •         return 'array is not an Array!'
  •  
  •     } 
  •  
  •  
  • var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]; 
  •  
  • console.log(binaryInsertionSort(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]  
  • 改进前后比较:

    插入排序动图演示:

    (3)算法分析

    • 最佳情况:输入数组按升序分列。T(n) = O(n)
    • 最坏情况:输入数组按降序分列。T(n) = O(n2)
    • 平均情况:T(n) = O(n2)

    1959年Shell创造;

    第一个冲破O(n^2)的排序算法;是简单插入排序的改进版;它与插入排序的不合之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序

    (1)算法简介

    希尔排序的核心在于距离序列的设定。既可以提前设定好距离序列,也可以动态的定义距离序列。动态定义距离序列的算法是《算法(第4版》的合著者Robert Sedgewick提出的。

    (2)算法描述和实现


      推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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