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 相关文章推荐
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
Aug 13 Javascript
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
基于jquery实现的仿优酷图片轮播特效代码
Jan 13 Javascript
Bootstrap三种表单布局的使用方法
Jun 21 Javascript
node.js 中间件express-session使用详解
May 20 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
Apr 28 Javascript
js实现轮播图的完整代码
Oct 26 Javascript
微信小程序日历弹窗选择器代码实例
May 09 Javascript
node.js开发辅助工具nodemon安装与配置详解
Feb 06 Javascript
40行代码把Vue3的响应式集成进React做状态管理
May 20 Javascript
小程序表单认证布局及验证详解
Jun 19 Javascript
JS中的变量作用域(console版)
Jul 18 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
浅析PHP开发规范
2018/02/05 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
python 循环数据赋值实例
2019/12/02 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
python在协程中增加任务实例操作
2021/02/28 Python
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
爱护公共设施标语
2014/06/24 职场文书
升国旗演讲稿
2014/09/05 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
2014年消防工作总结
2014/11/21 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP