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 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
Expandable &quot;Detail&quot; Table Rows
Aug 29 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
Jan 12 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
基于mootools插件实现遮罩层新手引导
May 24 Javascript
js H5 canvas投篮小游戏
Aug 18 Javascript
详解Vue方法与事件
Mar 09 Javascript
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
JavaScript判断变量名是否存在数组中的实例
Dec 28 Javascript
微信小程序授权登录及解密unionId出错的方法
Sep 26 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
详解Node.js使用token进行认证的简单示例
May 25 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.MVC的模板标签系统(一)
2006/09/05 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python3并发写文件与Python对比
2019/11/20 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
python实现简单的学生管理系统
2021/02/22 Python
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
高中学生干部学习的自我评价
2014/02/21 职场文书
学校募捐倡议书
2014/05/14 职场文书
团支部推优材料
2014/05/21 职场文书
关爱留守儿童标语
2014/06/18 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
接待员岗位职责
2015/02/13 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python