详解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 prototype截取字符串函数
Apr 01 Javascript
jQuery Ajax使用 全解析
Dec 15 Javascript
解析Javascript中难以理解的11个问题
Dec 09 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
jQuery创建DOM元素实例解析
Jan 19 Javascript
SWFObject基本用法实例分析
Jul 20 Javascript
全面解析Bootstrap表单使用方法(表单样式)
Nov 24 Javascript
JavaScript 基础函数_深入剖析变量和作用域
May 18 Javascript
对vue里函数的调用顺序介绍
Mar 17 Javascript
JS实现获取进今年第几天是周几的方法分析
Jun 27 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php 变量定义方法
2009/06/14 PHP
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
php简单日历函数
2015/10/28 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
vuex 的简单使用
2018/03/22 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
工地安全检查制度
2014/02/04 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
好人好事演讲稿
2014/09/01 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
一年级小学生评语大全
2014/12/25 职场文书
清洁工岗位职责
2015/02/13 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
丧事答谢词大全
2015/09/30 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
Python数据结构之队列详解
2022/03/21 Python
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang