JavaScript中三种常见的排序方法


Posted in Javascript onFebruary 24, 2017

1、快速排序:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>快速排序</title>
</head>
<body>
<script>
 var ary=[21,8,4,32,5];
 function quickSort(ary){
 if(ary.length<=1){
  return ary;
 }
 var num=Math.floor(ary.length/2);
 var numValue=ary.splice(num,1)[0];
 var left=[];
 var right=[];
 for(var i=0; i<ary.length; i++){
  var cur=ary[i];
  if(cur<numValue){
  left.push(cur);
  }else{
  right.push(cur);
  }
 }
 return quickSort(left).concat([numValue],quickSort(right));
 }
 document.write(quickSort(ary));
</script>
</body>
</html>

2、插入排序

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>插入排序</title>
</head>
<body>
<script>
 var ary=[21,8,4,32,5];
 function insertSort(ary){
 var left=ary.splice(0,1);
 for(var i=0; i<ary.length; i++){
  var cur=ary[i];
  for(var j=left.length-1; j>=0;){
  var nex=left[j];
  if(cur<nex){
   j--;
   if(j===-1){
   left.unshift(cur);
   }
  }else{
   left.splice(j+1,0,cur);
   break;
  }
  }
 }
 return left;
 }
 document.write(insertSort(ary));
</script>
</body>
</html>

3、冒泡排序

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>冒泡排序</title>
</head>
<body>
<script>
 var ary=[21,32,2,9,4];
 function bubbleSort(ary){
 for(var i=0; i<ary.length; i++){
  for(var j=0; j<ary.length-i-1; j++){
  if(ary[j]>ary[j+1]){
   var tmp=ary[j+1];
   ary[j+1]=ary[j];
   ary[j]=tmp;
  }
  }
 }
 return ary;
 }
 document.write(bubbleSort(ary));
</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
再谈IE中Flash控件的自动激活 ObjectWrap
Mar 09 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
Feb 07 Javascript
extjs中form与grid交互数据(record)的方法
Aug 29 Javascript
JQuery页面的表格数据的增加与分页的实现
Dec 10 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
Feb 27 Javascript
Vue组件之单向数据流的解决方法
Nov 10 Javascript
webpack 代码分离优化快速指北
May 18 Javascript
JavaScript从原型到原型链深入理解
Jun 03 Javascript
使用微信SDK自定义分享的方法
Jul 03 Javascript
JavaScript前后端JSON使用方法教程
Nov 23 Javascript
Angular2 Service实现简单音乐播放器服务
Feb 24 #Javascript
Bootstrap3多级下拉菜单
Feb 24 #Javascript
使用原生的javascript来实现轮播图
Feb 24 #Javascript
从零学习node.js之mysql数据库的操作(五)
Feb 24 #Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 #Javascript
JavaScript中值类型和引用类型的区别
Feb 23 #Javascript
canvas绘制环形进度条
Feb 23 #Javascript
You might like
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
一端时间轮换的广告
2006/06/26 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
jQuery实现评论模块
2020/08/19 jQuery
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
对于Python中线程问题的简单讲解
2015/04/03 Python
Python对List中的元素排序的方法
2018/04/01 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
Python中的Cookie模块如何使用
2020/06/04 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
毕业生求职推荐信
2013/11/04 职场文书
学习心得体会
2014/01/01 职场文书
中英文求职信范文
2014/01/27 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
超市促销活动总结
2014/07/01 职场文书
房产协议书范本2014
2014/09/30 职场文书
职称评定个人总结
2015/03/05 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
学籍证明模板
2015/06/18 职场文书
《比的意义》教学反思
2016/02/18 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android