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 相关文章推荐
调用js时ie6和ie7,ff的区别
Aug 19 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
Nov 09 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
Feb 16 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
Dec 19 Javascript
7个JS基础知识总结
Mar 05 Javascript
javascript下使用Promise封装FileReader
Feb 19 Javascript
JS实现为排序好的字符串找出重复行的方法
Mar 02 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
php-msf源码详解
2017/12/25 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
清空上传控件input file的值
2010/07/03 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
python解析xml文件操作实例
2014/10/05 Python
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
详解Python 切片语法
2019/06/10 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
python爬虫请求头的使用
2020/12/01 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
高中毕业自我鉴定
2013/12/22 职场文书
公司同意接收函
2014/01/13 职场文书
公司经理任命书
2014/06/05 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
三孔导游词
2015/02/05 职场文书
2015年电工工作总结
2015/04/10 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP