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 相关文章推荐
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
AngularJS实现表单验证
Jan 28 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 Javascript
分享使用AngularJS创建应用的5个框架
Dec 05 Javascript
AngularJS 中的事件详解
Jul 28 Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 Javascript
jQuery 选择器(61种)整理总结
Sep 26 Javascript
jquery dialog获取焦点的方法
Feb 09 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
vue2.0实现前端星星评分功能组件实例代码
Feb 12 Javascript
完美解决axios在ie下的兼容性问题
Mar 05 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
Jan 04 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 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
跟老齐学Python之print详解
2014/09/28 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
简历自我评价优缺点
2015/03/11 职场文书
交心谈心活动总结
2015/05/11 职场文书
活动经费申请报告
2015/05/15 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
小学运动会开幕词
2016/03/04 职场文书
技术转让协议书
2016/03/19 职场文书
如何写好竞聘报告
2019/04/03 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS