JS排序之选择排序详解

 更新时间:2017年04月08日 11:48:37   作者:Blue-Beginner  
这篇文章主要为大家详细介绍了JS选择排序的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家分享了JS选择排序的具体代码,供大家参考,具体内容如下

说明

  • 时间复杂度指的是一个算法执行所耗费的时间
  • 空间复杂度指运行完一个程序所需内存的大小
  • 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面
  • 不稳定指,如果a=b,a在b的前面,排序后可能会交换位置

--JS选择排序--

原理

首先从原始数组中找到最小的元素,并把该元素放在数组的最前面,然后再从剩下的元素中寻找最小的元素,放在之前最小元素的后面,知道排序完毕。

时间复杂度,空间复杂度,稳定性

  • 平均时间复杂度O(n*n)
  • 最好情况O(n*n)
  • 最差情况O(n*n)
  • 空间复杂度O(1)
  • 稳定性:不稳定

选择排序的写法

var example=[8,94,15,88,55,76,21,39];
function selectSort(arr){
 var len=arr.length;
 var minIndex,temp;
 console.time('选择排序耗时');
 for(i=0;i<len-1;i++){
  minIndex=i;
  for(j=i+1;j<len;j++){
   if(arr[j]<arr[minIndex]){
    minIndex=j;
   }
  }
 temp=arr[i];
 arr[i]=arr[minIndex];
 arr[minIndex]=temp;
 }
 console.timeEnd('选择排序耗时');
 return arr;
}
console.log(selectSort(example));

解析

minIndex始终保存着最小值的位置的索引,随着i的自增,遍历的数组长度越来越短,直到完成排序。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • javascript使用call调用微信API

    javascript使用call调用微信API

    这篇文章主要介绍了javascript使用call调用微信API,需要的朋友可以参考下
    2014-12-12
  • 定时器(setTimeout/setInterval)调用带参函数失效解决方法

    定时器(setTimeout/setInterval)调用带参函数失效解决方法

    setInterval()方法可按照指定的周期(以毫秒计)来调用函数或计算表达式,setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式,详细使用方法可以参考下本文
    2013-03-03
  • js回到页面指定位置的三种方式

    js回到页面指定位置的三种方式

    这篇文章主要介绍了js回到页面指定位置的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • LayUI动态设置checkbox不显示的解决方法

    LayUI动态设置checkbox不显示的解决方法

    今天小编就为大家分享一篇LayUI动态设置checkbox不显示的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • js精准计算

    js精准计算

    这篇文章主要介绍了js精准计算,对此感兴趣的同学,可以实验一下
    2021-04-04
  • JavaScript获取并更改input标签name属性的方法

    JavaScript获取并更改input标签name属性的方法

    这篇文章主要介绍了JavaScript获取并更改input标签name属性的方法,涉及javascript针对表单元素属性的相关操作技巧,需要的朋友可以参考下
    2015-07-07
  • 原生JS检测CSS3动画是否结束的方法详解

    原生JS检测CSS3动画是否结束的方法详解

    这篇文章主要介绍了原生JS检测CSS3动画是否结束的方法,结合实例形式分析了javascript事件响应及针对css3属性检测相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • JavaScript游戏之优化篇

    JavaScript游戏之优化篇

    最近回头看看自己以前写的游戏代码,总结出几个可以优化改进的地方,当然还有很多地方需要优化,还希望大家指出来。
    2010-11-11
  • openlayers实现图标拖动获取坐标

    openlayers实现图标拖动获取坐标

    这篇文章主要为大家详细介绍了openlayers实现图标拖动获取坐标,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • JS实现表格数据各种搜索功能的方法

    JS实现表格数据各种搜索功能的方法

    这篇文章主要介绍了JS实现表格数据各种搜索功能的方法,可实现忽略大小写,模糊搜索,多关键搜索等功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论