详解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 读后台cookie代码
Sep 15 Javascript
javascript window对象属性整理
Oct 24 Javascript
jquery中通过过滤器获取表单元素的实现代码
Jul 05 Javascript
基于jquery的固定表头和列头的代码
May 03 Javascript
使用非html5实现js板连连看游戏示例代码
Sep 22 Javascript
js日期、星座的级联显示代码
Jan 23 Javascript
原生javascript实现简单的datagrid数据表格
Jan 02 Javascript
浅析javascript中的事件代理
Nov 06 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
Vue制作Todo List网页
Apr 26 Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
vue3.0实现插件封装
Dec 14 Vue.js
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
TMDPHP 模板引擎使用教程
2012/03/13 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
浅谈Python 对象内存占用
2016/07/15 Python
Python3 replace()函数使用方法
2018/03/19 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
python 读取、写入txt文件的示例
2020/09/27 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
C语言开发工程师测试题
2016/12/20 面试题
五年后的职业生涯规划
2014/03/04 职场文书
大学信息公开实施方案
2014/03/09 职场文书
销售内勤岗位职责
2014/04/15 职场文书
和睦家庭事迹
2014/05/14 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
发票退票证明
2015/06/24 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python