详解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 相关文章推荐
理解Javascript_09_Function与Object
Oct 16 Javascript
javascript window.confirm确认 取消对话框实现代码小结
Oct 21 Javascript
jQuery表格排序组件-tablesorter使用示例
May 26 Javascript
jQuery学习笔记之toArray()
Jun 09 Javascript
教你如何在Node.js中使用jQuery
Aug 28 Javascript
JavaScript构建自己的对象示例
Nov 29 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 Javascript
node中使用log4js4.x版本记录日志的方法
Aug 20 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
Nov 13 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 远程图片保存到本地的函数类
2008/12/08 PHP
简化php模板页面中分页代码的解析
2009/02/06 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
Js base64 加密解密介绍
2013/10/11 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
python的几种开发工具介绍
2007/03/07 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
python障碍式期权定价公式
2019/07/19 Python
Python hmac模块使用实例解析
2019/12/24 Python
Python如何使用字符打印照片
2020/01/03 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
数控专业大学生的自我鉴定
2013/11/13 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
大众服装店创业计划书范文
2014/01/01 职场文书
毕业生自荐书模版
2014/01/04 职场文书
大学生毕业鉴定
2014/01/31 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
2015政治思想表现评语
2015/03/25 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书