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的:parent选择器定义和用法
Jul 01 Javascript
jquery访问ashx文件示例代码
Aug 11 Javascript
js仿百度切换皮肤功能(html+css)
Jul 10 Javascript
浅谈jquery上下滑动的注意事项
Oct 13 Javascript
Angularjs实现上传图片预览功能
Sep 01 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
Apr 01 Javascript
Vue实现Header渐隐渐现效果的实例代码
Nov 05 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
Nov 06 Javascript
node脚手架搭建服务器实现token验证的方法
Jan 20 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
python动态性强类型用法实例
2015/05/09 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
Linux机考试题
2015/10/16 面试题
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
期末自我鉴定
2014/01/23 职场文书
三方协议书范本
2014/04/22 职场文书
活动总结书
2014/05/08 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
mysql如何查询连续记录
2022/05/11 MySQL