详解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 相关文章推荐
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
基于jquery tab切换(防止页面刷新)
May 23 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
深入理解js generator数据类型
Aug 16 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
vue打包之后生成一个配置文件修改接口的方法
Dec 09 Javascript
ElementUI radio组件选中小改造
Aug 12 Javascript
解析vue、angular深度作用选择器
Sep 11 Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 Javascript
VUE兄弟组件传值操作实例分析
Oct 26 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中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
jquery map方法使用示例
2014/04/23 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
士兵突击观后感
2015/06/16 职场文书
画展观后感
2015/06/17 职场文书
排球赛新闻稿
2015/07/17 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
Java实现房屋出租系统详解
2021/10/05 Java/Android
详解OpenCV曝光融合
2022/04/29 Python
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android