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 相关文章推荐
AutoSave/自动存储功能实现
Mar 24 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
Mar 23 Javascript
javascript 获取页面的高度及滚动条的位置的代码
May 06 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
使用javascipt---实现二分查找法
Apr 10 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
May 28 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
Dec 28 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
Jan 08 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
layui-table对返回的数据进行转变显示的实例
Sep 04 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 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
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
js实现抽奖功能
2020/11/24 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
医药代表个人求职信范本
2013/12/19 职场文书
现金出纳岗位职责
2014/03/15 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
食品流通安全承诺书
2014/05/22 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
一份文言文检讨书
2014/09/13 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
最新最全的手机号验证正则表达式
2022/02/24 Javascript
Java实现二分搜索树的示例代码
2022/03/17 Java/Android
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python
利用Java连接Hadoop进行编程
2022/06/28 Java/Android
Python软件包安装的三种常见方法
2022/07/07 Python