详解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 相关文章推荐
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
xheditor与validate插件冲突的解决方案
Apr 15 Javascript
HTML Color Picker(js拾色器效果)
Aug 27 Javascript
js中的replace方法使用介绍
Oct 28 Javascript
jquery给图片添加鼠标经过时的边框效果
Nov 12 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
js控制页面的全屏展示和退出全屏显示的方法
Mar 10 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
Nov 29 Javascript
Node.js中sequelize时区的配置方法
Dec 10 Javascript
详解微信小程序支付流程与梳理
Jul 16 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
Python只用40行代码编写的计算器实例
2017/05/10 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
Python有参函数使用代码实例
2020/01/06 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
实习医生自我评价
2013/09/22 职场文书
面试求职的个人自我评价
2013/11/16 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
护士长竞聘书
2014/03/31 职场文书
法制教育观后感
2015/06/17 职场文书
关于环保的广播稿
2015/12/17 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python