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 相关文章推荐
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
javascript 实现子父窗体互相传值的简单实例
Feb 17 Javascript
jquery实现倒计时代码分享
Jun 13 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 Javascript
在JS方法中返回多个值的方法汇总
May 20 Javascript
JS随机调用指定函数的方法
Jul 01 Javascript
Vue.js每天必学之过渡与动画
Sep 06 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
JSON对象转化为字符串详解
Aug 11 Javascript
Vue.js在数组中插入重复数据的实现代码
Nov 17 Javascript
JS call()及apply()方法使用实例汇总
Jul 11 Javascript
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
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
一个SQL管理员的web接口
2006/10/09 PHP
YII中assets的使用示例
2014/07/31 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
php图片裁剪函数
2018/10/31 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
ASP SQL防注入的方法
2008/12/25 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
小程序云开发实战小结
2018/10/25 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
使用python实现个性化词云的方法
2017/06/16 Python
scrapy爬虫完整实例
2018/01/25 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
加拿大最大的书店:Indigo
2017/01/01 全球购物
开业主持词
2014/03/21 职场文书
同学聚会感言一句话
2015/07/30 职场文书