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 相关文章推荐
location.search在客户端获取Url参数的方法
Jun 08 Javascript
jquery一句话全选/取消全选
Mar 01 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
在百度知道团队中快速审批新成员的js脚本
Feb 02 Javascript
Jquery操作js数组及对象示例代码
May 11 Javascript
jquery文档操作wrap()方法实例简述
Jan 10 Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
JS创建Tag标签的方法详解
Jun 09 Javascript
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
mapboxgl实现带箭头轨迹线的代码
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
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
如何开发一个虚拟域名系统
2006/10/09 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
Angular实现响应式表单
2017/08/04 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
python一键升级所有pip package的方法
2017/01/16 Python
Python 装饰器使用详解
2017/07/29 Python
python xpath获取页面注释的方法
2019/01/14 Python
pyqt5实现登录界面的模板
2020/05/30 Python
pytorch 预训练层的使用方法
2019/08/20 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
python有几个版本
2020/06/17 Python
护士实习自我鉴定
2013/10/22 职场文书
后勤工作职责
2013/12/22 职场文书
我的老师教学反思
2014/05/01 职场文书
项目经理任命书
2014/06/04 职场文书
社区好人好事材料
2014/12/26 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
JS封装cavans多种滤镜组件
2022/02/15 Javascript
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL