详解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 相关文章推荐
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
jQuery插件 tabBox实现代码
Feb 09 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
May 23 Javascript
分享XmlHttpRequest调用Webservice的一点心得
Jul 20 Javascript
jQuery简单实现title提示效果示例
Aug 01 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
详解基于vue-cli配置移动端自适应
Jan 13 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
原生JS封装_new函数实现new关键字的功能
Aug 12 Javascript
vue单页应用在页面刷新时保留状态数据的方法
Sep 21 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
php数组去重的函数代码
2013/02/03 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
python中list循环语句用法实例
2014/11/10 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
python3实现弹弹球小游戏
2019/11/25 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
Java基础知识面试要点
2016/07/29 面试题
深圳茁壮笔试题
2015/05/28 面试题
资产经营总监岗位职责范文
2013/12/01 职场文书
优秀幼教自荐信
2014/02/03 职场文书
政风行风建设整改方案
2014/10/27 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
护理自荐信
2019/05/14 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
mysql的数据压缩性能对比详情
2021/11/07 MySQL