详解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的MessageBox
Dec 03 Javascript
Jquery阻止事件冒泡 event.stopPropagation
Dec 11 Javascript
JS验证邮箱格式是否正确的代码
Dec 05 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
Jun 16 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
JS实现的另类手风琴效果网页内容切换代码
Sep 08 Javascript
js H5 canvas投篮小游戏
Aug 18 Javascript
js中的闭包学习心得
Feb 06 Javascript
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
vue.js中使用echarts实现数据动态刷新功能
Apr 16 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 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
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
JQuery球队选择实例
2015/05/18 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
基于sklearn实现Bagging算法(python)
2019/07/11 Python
医学生毕业自我鉴定
2014/03/26 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
工程质检员岗位职责
2015/04/08 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
高三毕业感言
2015/07/30 职场文书
科级干部培训心得体会
2016/01/06 职场文书
九年级历史教学反思
2016/02/19 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
Python爬虫基础讲解之请求
2021/05/13 Python
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS