详解JS中的快速排序与冒泡

 更新时间:2017年01月10日 14:04:43   作者:奋斗的小小牛  
本文主要介绍了快速排序思想与冒泡排序思想。具有一定的参考价值,下面跟着小编一起来看下吧

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实现可搜索的表格

    在Web开发中,数据表格是常见的数据展示形式,这篇文章主要为大家详细介绍了如何使用JavaScript来实现这个功能,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • 详解webpack运行Babel教程

    详解webpack运行Babel教程

    这篇文章主要介绍了详解webpack运行Babel教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • PHP+jQuery+Ajax+Mysql如何实现发表心情功能

    PHP+jQuery+Ajax+Mysql如何实现发表心情功能

    这篇文章通过php+jquery+ajax+mysql相结合,实现当用户浏览网站文章或者是论坛帖子后,想表达自己浏览后的心情,发表自己的感受,很多网站都提供了用户发表心情的功能,通过此功能可以很直观的分析文章或者是论坛对浏览者的用户体验度
    2015-08-08
  • JavaScript基于面向对象实现的猜拳游戏

    JavaScript基于面向对象实现的猜拳游戏

    这篇文章主要介绍了JavaScript基于面向对象实现的猜拳游戏,结合完整实例形式分析了javascript基于面向对象实现猜拳游戏的具体页面布局、样式及功能相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • 微信小程序实现图片选择并预览功能

    微信小程序实现图片选择并预览功能

    这篇文章主要为大家详细介绍了微信小程序实现图片选择并预览,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 使用Mock.js生成前端测试数据

    使用Mock.js生成前端测试数据

    这篇文章主要介绍了使用Mock.js生成前端测试数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Extjs显示从数据库取出时间转换JSON后的出现问题

    Extjs显示从数据库取出时间转换JSON后的出现问题

    后台从数据库取出时间,JSON格式化后再传到gridpanel,这时时间变成了:/Date(32331121223)/这样的格式,本文将详细介绍解决Extjs显示从数据库取出时间转换JSON后的出现问题
    2012-11-11
  • ionic 上拉菜单(ActionSheet)实例代码

    ionic 上拉菜单(ActionSheet)实例代码

    ionic js 上拉菜单(ActionSheet)通过往上弹出的框,来让用户选择选项;点击取消按钮或者点击空白的地方来让它消失。本文给大家分享实现代码,感兴趣的朋友一起看看吧
    2016-06-06
  • w3c编程挑战_初级脚本算法实战篇

    w3c编程挑战_初级脚本算法实战篇

    下面小编就为大家带来一篇w3c编程挑战_初级脚本算法实战篇。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • document.addEventListener使用介绍

    document.addEventListener使用介绍

    这篇文章主要介绍了document.addEventListener,下面有个示例,大家可以参考下
    2014-03-03

最新评论