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 相关文章推荐
高性能web开发 如何加载JS,JS应该放在什么位置?
May 14 Javascript
JavaScript格式化数字的函数代码
Nov 30 Javascript
用javascript作一个通用向导说明
Aug 30 Javascript
最简单的js图片切换效果实现代码
Sep 24 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
May 26 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
Jul 27 Javascript
Bootstrap零基础入门教程(二)
Jul 18 Javascript
求js数组的最大值和最小值的四种方法
Mar 03 Javascript
JS数组搜索之折半搜索实现方法分析
Mar 27 Javascript
Vue2组件tree实现无限级树形菜单
Mar 29 Javascript
使用javascript做时间倒数读秒功能的实例
Jan 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调用dll的实例操作动画与代码分享
2012/08/14 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
javascript globalStorage类代码
2009/06/04 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
VUE重点问题总结
2018/03/19 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
python多重继承实例
2014/10/11 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python中format()函数的简单使用教程
2018/03/14 Python
python实现简易动态时钟
2018/11/19 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
师德模范事迹材料
2014/06/03 职场文书
社区护士演讲稿
2014/08/27 职场文书
大学学生会辞职信
2015/05/13 职场文书
班主任开场白
2015/06/01 职场文书
一个都不能少观后感
2015/06/04 职场文书