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

发布时间 - 2026-01-10 22:25:38    点击率:

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;
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 快速排序  # 冒泡  # JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】  # JavaScript算法学习之冒泡排序和选择排序  # JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】  # JavaScript实现的冒泡排序法及统计相邻数交换次数示例  # JavaScript实现经典排序算法之冒泡排序  # 举例说明javascript冒泡排序  # 递归  # 数为  # 先找  # left  # function  # brush  # pre  # class  # span  # style  # strong  # color  # quickSort  # push  # concat  # splice  # gt  # bubbleSort  # temp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Angular 表单中正确绑定输入值以确保提交与验证正常工作  IOS倒计时设置UIButton标题title的抖动问题  在centOS 7安装mysql 5.7的详细教程  在Oracle关闭情况下如何修改spfile的参数  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  详解Android——蓝牙技术 带你实现终端间数据传输  Python文件异常处理策略_健壮性说明【指导】  Laravel API资源类怎么用_Laravel API Resource数据转换  如何在Windows服务器上快速搭建网站?  详解Huffman编码算法之Java实现  js代码实现下拉菜单【推荐】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Swift中循环语句中的转移语句 break 和 continue  如何撰写建站申请书?关键要点有哪些?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  网站制作价目表怎么做,珍爱网婚介费用多少?  Android实现代码画虚线边框背景效果  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel中的Facade(门面)到底是什么原理  C++时间戳转换成日期时间的步骤和示例代码  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  EditPlus 正则表达式 实战(3)  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  C语言设计一个闪闪的圣诞树  Python制作简易注册登录系统  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何选择可靠的免备案建站服务器?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  网页设计与网站制作内容,怎样注册网站?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Thinkphp 中 distinct 的用法解析  音乐网站服务器如何优化API响应速度?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何自定义建站之星网站的导航菜单样式?  详解Oracle修改字段类型方法总结  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  javascript读取文本节点方法小结  如何在万网利用已有域名快速建站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何集成Inertia.js与Vue/React?(安装配置)