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 相关文章推荐
细品javascript 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
JS模拟的QQ面板上的多级可展开的菜单
Oct 10 Javascript
zShowBox 图片放大展示jquery版 兼容性
Sep 24 Javascript
jquery和ajax的关系详细介绍
Nov 29 Javascript
JavaScript获取table中某一列的值的方法
May 06 Javascript
js获取IP地址的方法小结
Jul 01 Javascript
基于jQuery实现动态数字展示效果
Aug 12 Javascript
weUI应用之JS常用信息提示弹层的封装
Nov 21 Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
Oct 10 Javascript
vue全局自定义指令-元素拖拽的实现代码
Apr 14 Javascript
小程序实现订单倒计时功能
Apr 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利用单例模式实现日志处理类库
2014/02/10 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
python 实现登录网页的操作方法
2018/05/11 Python
浅谈flask源码之请求过程
2018/07/26 Python
Python 监测文件是否更新的方法
2019/06/10 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
几道PHP的面试题
2012/05/19 面试题
武汉某公司的C#笔试题面试题
2015/12/25 面试题
计算机网络专业推荐信
2013/11/24 职场文书
参观监狱心得体会
2014/01/02 职场文书
2014春晚主持词
2014/03/25 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
运动会5000米加油稿
2015/07/21 职场文书
高一作文之暖冬
2019/11/09 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
JavaScript文档对象模型DOM
2021/11/20 Javascript