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 相关文章推荐
用document.documentElement取代document.body的原因分析
Nov 12 Javascript
jquery 学习之二 属性(html()与html(val))
Nov 25 Javascript
Jquery判断IE6等浏览器的代码
Apr 05 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
Oct 24 Javascript
Express作者TJ告别Node.js奔向Go
Jul 14 Javascript
jQuery插件制作的实例教程
May 16 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 Javascript
微信小程序实现YDUI的ScrollTab组件
Feb 02 Javascript
详解vue-video-player使用心得(兼容m3u8)
Aug 23 Javascript
js实现窗口全屏示例详解
Sep 17 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 Javascript
jQuery实现倒计时功能完整示例
Jun 01 jQuery
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
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
php下使用以下代码连接并测试
2008/04/09 PHP
php重定向的三种方法分享
2012/02/22 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
PHP解析RSS的方法
2015/03/05 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
asp 的 分词实现代码
2007/05/24 Javascript
javascript高亮效果的二种实现方法
2008/09/14 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
jquery编写日期选择器
2017/03/16 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
js实现全选和全不选
2020/07/28 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python类型转换的魔术方法详解
2020/12/23 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
do you have any Best Practice for testing
2016/06/04 面试题
村干部培训方案
2014/05/02 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
学生会辞职信
2015/03/02 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
高老头读书笔记
2015/06/30 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android