JS数组排序方法实例分析


Posted in Javascript onDecember 16, 2016

本文实例讲述了JS数组排序方法。分享给大家供大家参考,具体如下:

方法一.冒泡排序

思路:依次比较数组中的第一个元素和第二个元素,如果第一个元素大于第二个元素,则交换位置,所以需要两个函数:交换位置函数和比较函数

比较轮数为数组长度

var arr=[2,58,49,26,34];
function change(f,s){
  var temp=arr[f];
  arr[f]=arr[s];
  arr[s]=temp;
}
for(var i=0;i<arr.length;i++){
  for(var j=0;j<arr.length-1;j++){
    if(arr[j]>arr[j+1]){
      change(j,+j+1);
    }
  }
}
alert(arr);

方法二.选择排序

从数组中找到最小值,扔到数组第一位,然后从剩下数组中循环操作

var arr=[2,58,49,26,34];
function change(){
  if(arr.length==1){
    return arr;
  }
  var iMin=arr[0];
  var index=0;
  for(var i=0;i<arr.length;i++){
    if(arr[i]<iMin){
      iMin=arr[i];
      index=i;
    }
  }
  var prev=arr.splice(index,1);
  return prev.concat(change(arr));
}
alert(change(arr));

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript 可以拖动的DIV(二)
Jun 26 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
调用jQuery滑出效果时闪烁的解决方法
Mar 27 Javascript
JavaScript实现按Ctrl键打开新页面
Sep 04 Javascript
jQuery基于BootStrap样式实现无限极地区联动
Aug 26 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
Node.js引入UIBootstrap的方法示例
May 11 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
Oct 25 Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 Javascript
浅析VUE防抖与节流
Nov 24 Vue.js
vue打开其他项目页面并传入数据详解
Nov 25 Vue.js
jquery UI Datepicker时间控件冲突问题解决
Dec 16 #Javascript
详解jQuery简单的表单应用
Dec 16 #Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 #Javascript
简单三步实现报表页面集成天气
Dec 15 #Javascript
jQuery Validate让普通按钮触发表单验证的方法
Dec 15 #Javascript
JavaScript中定义对象原型的两种使用方法
Dec 15 #Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
Dec 15 #Javascript
You might like
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
smarty简单入门实例
2014/11/28 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
python获取本地计算机名字的方法
2015/04/29 Python
python集合用法实例分析
2015/05/30 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
python中实现栈的三种方法
2020/12/19 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
开放系统互连参考模型
2016/06/29 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
小学毕业演讲稿
2014/04/25 职场文书
药剂专业求职信
2014/06/20 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书