详解JS中的快速排序与冒泡


Posted in Javascript onJanuary 10, 2017

1.快速排序思想:

1.1 先找数组的最中间的一个数为基准

1.2 把数组通过此基准分为小于基准的left数组和大于基准的right数组,

1.3 递归重复上面的两个步骤,

代码如下:

function quickSort(arr) {
  if (arr.length <=1 ){
    return arr;
  }
  var middleIndex = Math.floor(arr.length / 2);
  var left = [];
  var right = [];
  var middle = arr.splice(middleIndex,1)[0];
  for (var i = 0; i < arr.length; i++) {
    if ( arr[i] > middle) {
      right.push(arr[i]);
    } else {
      left.push(arr[i]);
    }
  }
  return quickSort(left).concat(middle,quickSort(right));
}

2. 冒泡排序思想:

  2.1 两两比较,交换位置

2.2 循环数组

代码如下:

function bubbleSort(arr) {
  for (var i = 0; i < arr.length - 1; i++) {
    for (var j = 0; j < arr.length -1 -i; j++) {
      if( arr[j] > arr[j+1]){
        var temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
      }
    }
  }
  return arr;
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jQuery Clone Bug解决代码
Dec 22 Javascript
dreamweaver 安装Jquery智能提示
Apr 02 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
May 08 Javascript
javascript定义变量时加var与不加var的区别
Dec 22 Javascript
javascript表单验证大全
Aug 12 Javascript
bootstrap fileinput 上传插件的基础使用
Feb 17 Javascript
JavaScript+CSS相册特效实例代码
Sep 07 Javascript
关于react中组件通信的几种方式详解
Dec 10 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
Jan 20 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 Javascript
封装一下vue中的axios示例代码详解
Feb 16 Javascript
Javascript之datagrid查询详解
Sep 15 Javascript
BootStrapTable 单选及取值的实现方法
Jan 10 #Javascript
VueJs路由跳转——vue-router的使用详解
Jan 10 #Javascript
js自定义QQ菜单效果
Jan 10 #Javascript
js实现将json数组显示前台table中
Jan 10 #Javascript
详解Vue自定义过滤器的实现
Jan 10 #Javascript
JS实现的表头列头固定页面功能示例
Jan 10 #Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 #Javascript
You might like
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
Python实现的栈(Stack)
2018/01/26 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
python在协程中增加任务实例操作
2021/02/28 Python
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
公司请假条格式
2014/04/11 职场文书
大型会议策划方案
2014/05/17 职场文书
新教师培训心得体会
2014/09/02 职场文书
党员个人剖析材料
2014/09/30 职场文书
狂人日记读书笔记
2015/06/30 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
Python+pyaudio实现音频控制示例详解
2022/07/23 Python