详解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 相关文章推荐
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
javascript对下拉列表框(select)的操作实例讲解
Nov 29 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
Node.js中的模块机制学习笔记
Nov 04 Javascript
TypeError document.getElementById(...) is null错误原因
May 18 Javascript
javascript 使用for循环时该注意的问题-附问题总结
Aug 19 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
JavaScript解八皇后问题的方法总结
Jun 12 Javascript
Node.js中用D3.js的方法示例
Jan 16 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
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
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
vue3.0 上手体验
2020/09/21 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
python中执行shell的两种方法总结
2017/01/10 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
python isinstance函数用法详解
2020/02/13 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
Python 内存管理机制全面分析
2021/01/16 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
J2EE面试题集锦(附答案)
2013/08/16 面试题
大学生的自我鉴定范文
2014/01/21 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
校庆口号
2014/06/20 职场文书
Golang数据类型和相互转换
2022/04/12 Golang
Vue深入理解插槽slot的使用
2022/08/05 Vue.js