作家
登录

JavaScript中常见排序算法详解

作者: 来源: 2017-11-22 16:00:13 阅读 我要评论

一张图概括:

名词解释:

n:数据范围

k:“桶”的个数

In-place:占用常数内存,不占用额外内存

Out-place:占用额外内存

冒泡排序

作为最简单的排序算法之一,冒泡排序给我的感到就像Abandon在单词书里出现的感到一样,每次都在第一页第一位,所以最熟悉。。。冒泡排序还有一种优化算法,就是立一个flag,当在一趟序列遍历中元素没有产生交换,则证实该序列已经有序。但这种改进对于晋升机能来说并没有什么太大年夜感化。。。

什么时刻最快

当输入的数据已经是正序时(都已经是正序了,我还要你冒泡排序有何用啊。。。。)

什么时刻最慢

当输入的数据是反序时(写一个for轮回反序输出数据不就行了,干嘛要用你冒泡排序呢,我是闲的吗。。。)

JavaScript代码实现

  1. function bubbleSort(arr) { 
  2.     var len = arr.length; 
  3.     for (var i = 0; i < len; i++) { 
  4.         for (var j = 0; j < len - 1 - i; j++) { 
  5.             if (arr[j] > arr[j+1]) {        //相邻元素两两比较 
  6.                 var temp = arr[j+1];        //元故旧换 
  7.                 arr[j+1] = arr[j]; 
  8.                 arr[j] = temp
  9.             } 
  10.         } 
  11.     } 
  12.     return arr; 

选择排序

表示最稳定的排序算法之一,因为无论什么数据进去都是O(n²)的时光复杂度。。。所以用到它的时刻,数据范围越小越好。独一的好处可能就是不占用额外的内存空间了吧。

选择排序动图演示

JavaScript代码实现

  1. function selectionSort(arr) { 
  2.  
  3.     var len = arr.length; 
  4.  
  5.     var minIndex, temp
  6.  
  7.     for (var i = 0; i < len - 1; i++) { 
  8.  
  9.         minIndex = i; 
  10.  
  11.         for (var j = i + 1; j < len; j++) { 
  12.  
  13.             if (arr[j] < arr[minIndex]) {     //寻找最小的数 
  14.  
  15.                 minIndex = j;                 //将最小数的索引保存 

      推荐阅读

      为啥你电脑越来越卡 别人却能战五年?

    对于这种的办法:大年夜网页点击下载时要看看下载的文件名,绿色版的软件一般是目标软件的拼音或者英订婚名,多半是紧缩包(就算是安装版也要打包一下的),所以如不雅下载文件名是无序字符串,以及是exe文件,十有八九>>>详细阅读


    本文标题:JavaScript中常见排序算法详解

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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