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 相关文章推荐
jQuery中:checkbox选择器用法实例
Jan 03 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
Sep 28 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
微信小程序 request接口的封装实例代码
Apr 26 Javascript
Flask中获取小程序Request数据的两种方法
May 12 Javascript
详解Chai.js断言库API中文文档
Jan 31 Javascript
vue2中使用less简易教程
Mar 27 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
在Vuex使用dispatch和commit来调用mutations的区别详解
Sep 18 Javascript
react国际化化插件react-i18n-auto使用详解
Mar 31 Javascript
Element Steps步骤条的使用方法
Jul 26 Javascript
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
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
浅谈PDO的rowCount函数
2015/06/18 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
PHP 文件上传限制问题
2019/09/01 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
Python运算符重载用法实例分析
2015/06/01 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
python在文本开头插入一行的实例
2018/05/02 Python
python tkinter实现屏保程序
2019/07/30 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
贷款委托书
2014/08/01 职场文书
热爱劳动主题班会
2015/08/14 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS