详解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 相关文章推荐
完美解决JS中汉字显示乱码问题(已解决)
Dec 27 Javascript
SUN的《AJAX与J2EE》全文译了
Feb 23 Javascript
基于jQuery的日期选择控件
Oct 27 Javascript
JavaScript与DropDownList 区别分析
Jan 01 Javascript
jQuery自定义事件的简单实现代码
Jan 27 Javascript
jquery修改网页背景颜色通过css方法实现
Jun 06 Javascript
AngularJs Understanding the Model Component
Sep 02 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
Dec 12 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 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 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
php自动加载代码实例详解
2021/02/26 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
Python中基本的日期时间处理的学习教程
2015/10/16 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
python 编码规范整理
2018/05/05 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python图形用户接口实例详解
2019/12/16 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
Python爬虫开发与项目实战
2020/12/16 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
通信工程专业毕业生推荐信
2013/12/25 职场文书
人事任命书范文
2014/06/04 职场文书
2014院党委领导班子对照检查材料思想汇报
2014/09/24 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
先进单位事迹材料
2014/12/25 职场文书
监护人证明
2015/06/19 职场文书
听证会主持词
2015/07/03 职场文书
Python基础之Socket通信原理
2021/04/22 Python
一文搞懂Java中的注解和反射
2022/06/21 Java/Android