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+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
Jan 22 Javascript
jquery五角星评分插件示例分享
Feb 21 Javascript
node.js中的fs.ftruncate方法使用说明
Dec 15 Javascript
深入理解jQuery事件绑定
Jun 02 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
Mar 02 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
JS简易计算器实例讲解
Jun 30 Javascript
mpvue 项目初始化及实现授权登录的实现方法
Jul 20 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中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
php 无限级缓存的类的扩展
2009/03/16 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
js常用DOM方法详解
2017/02/04 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
垃圾回收的优点和原理
2014/05/16 面试题
办公室助理岗位职责
2013/12/25 职场文书
高中数学教学反思
2014/01/30 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
高中军训感言800字
2014/03/05 职场文书
招标保密承诺书
2015/01/20 职场文书
ktv服务员岗位职责
2015/02/09 职场文书