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 相关文章推荐
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
Oct 21 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
Aug 14 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
Mar 21 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
Apr 20 Javascript
javascript密码强度校验代码(两种方法)
Aug 10 Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 Javascript
原生js实现可拖拽效果
Feb 28 Javascript
Vuejs实现带样式的单文件组件新方法
May 02 Javascript
php简单数据库操作类的封装
Jun 08 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
详解关于element级联选择器数据回显问题
Feb 20 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 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
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
javascript中&quot;/&quot;运算符常见错误
2010/10/13 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
生成二维码方法汇总
2014/12/26 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
深入理解vue $refs的基本用法
2017/07/13 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
python3.6实现学生信息管理系统
2019/02/21 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
如何利用Python识别图片中的文字
2020/05/31 Python
Python下载的11种姿势(小结)
2020/11/18 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
施工工地安全标语
2014/06/07 职场文书
劳资员岗位职责
2015/02/13 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
JVM钩子函数的使用场景详解
2021/08/23 Java/Android