JS排序之选择排序详解


Posted in Javascript onApril 08, 2017

本文为大家分享了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 相关文章推荐
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
javascript 循环调用示例介绍
Nov 20 Javascript
javascript中的括号()用法小结
Apr 14 Javascript
Javascript动态创建表格及删除行列的方法
May 15 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
Javascript 5种方法实现过滤删除前后所有空格
Jun 22 Javascript
Vue插件写、用详解(附demo)
Mar 20 Javascript
JavaScript实现QQ列表展开收缩扩展功能
Oct 30 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
Angular封装表单控件及思想总结
Dec 11 Javascript
Vue实现简单的跑马灯
May 25 Javascript
Vue异步组件使用详解
Apr 08 #Javascript
利用jQuery解析获取JSON数据
Apr 08 #jQuery
AngularJS $http模块POST请求实现
Apr 08 #Javascript
node.js实现登录注册页面
Apr 08 #Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 #Javascript
js仿微信公众平台打标签功能
Apr 08 #Javascript
详解node.js搭建代理服务器请求数据
Apr 08 #Javascript
You might like
如何隐藏你的.php文件
2007/01/04 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
javascript 写类方式之二
2009/07/05 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
封装的原生javascript弹出层代码
2010/09/24 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
Python yield的用法实例分析
2020/03/06 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
质检员的岗位职责
2013/11/15 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
2014年创卫实施方案
2014/02/18 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
在校生证明
2015/06/17 职场文书
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏