JavaScript 数组排序——快速排序[通俗易懂]

JavaScript 数组排序——快速排序[通俗易懂]数组中的快速排序就是取原始数组中的一个元素最为基点,小于基点的放在一个数组中,大于基点的放在一个数组中,无限循环,知道将数组分解到长度(length<1)停止vararr=[12,3,569,78,0,-56,-56,-56,1223,11,16,13,1];functionquickSort(arr){if(arr.length<1)returnarr;分解数组,长度小于1的时候停止执行varmiddle=pa…

大家好,又见面了,我是你们的朋友全栈君。

   数组中的快速排序就是取原始数组中的一个元素最为基点,小于基点的放在一个数组中,大于基点的放在一个数组中,无限循环,知道将数组分解到长度(length<1)停止
var arr = [12, 3, 569, 78, 0, -56, -56, -56, 1223, 11, 16, 13, 1];
  function quickSort(arr) {
    if (arr.length < 1) return arr;分解数组,长度小于1的时候停止执行
    var middle = parseInt(arr.length / 2);在数组中寻找一个基点的下标
    var basic = arr.splice(middle, 1);将寻找到的基点的元素进行保存
    var left = [];创建新数组
    var right = [];创建新数组
    遍历寻找完基点的数组
    for (var i = 0; i < arr.length; i++) {
    利用寻找的基点进行划分
    小于寻找到的基点放在一个数组中
    大于寻找到的基点放在一个数组中
      if (basic[0] > arr[i]) {
        left.push(arr[i]);
      } else {
        right.push(arr[i]);
      }
    }
	将分割完成的数据+寻找的基点进行组合,形成排序后的新数组
    return quickSort(left).concat(basic[0], quickSort(right));
  }
  console.log(quickSort(arr));
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133116.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nodejs安装淘宝镜像(淘宝 nodejs)

    设置淘x,宝的是:npmconfigsetregistryhttps://registry.npm.taobao.org不想用他们的,再设置回原来的就可以了:npmconfigsetregistryhttps://registry.npmjs.org

    2022年4月17日
    39
  • 贴片电阻查询_贴片电阻的封装是什么

    贴片电阻查询_贴片电阻的封装是什么随着新技术的不断发展,目前电阻的种类有很多种,常见的有:薄膜和厚膜电阻(贴片电阻)、金属膜电阻、碳膜电阻、绕线电阻等。其中,贴片电阻器又可分为低阻值贴片电阻器,贴片电阻器阵列,贴片网络电阻器等。贴片电阻器的封装和尺寸的关系(长,宽,高)0201封装电阻对应的尺寸大小为(0.6,0.3,0.23),0402封装电阻对应的尺寸大小为(1.0,0.5,0.3),0603封装电阻对应的尺寸大小为(1.6,0.8,0.4),0805封装电阻对应的尺寸大小为(2.0,1.25,0.5),1206封装电阻对应的尺寸.

    2022年8月21日
    2
  • Xshell 连接linux主机

    Xshell 连接linux主机0 前言使用 Xshell 连接远程服务器 文件 新建 出现如下图标 主机即为需要连接的 Linux 服务器的 ip 地址 端口号为 22 无须修改 但需要确认远程服务器的 22 端口已经打开 点击左边的 用户身份验证 输入用户名和密码 点击确认后 即可连接 总体流程 就是这个样子 问题就在于 ip 地址 用户名 密码怎么填写 下面几个章节就展示了如何查看远程 Linux 服务器的 ip 用户名和密码等 1 查看 ip 地址查看 ip 地址使用命令 ifconfig 确保能够 ping 通在连接之前 需要确保本地能够 p

    2025年7月11日
    0
  • c++ 二维vector_vector如何重置

    c++ 二维vector_vector如何重置初始化二维vector,为r*c的vector,所有值为0.1.直接用初始化方法(刚开始没想到)vector>newOne(r,vector(c,0));2.用resize()来控制大小vector>res;res.resize(r);//r行for(intk=0;k

    2022年9月18日
    0
  • android listview 滚动到底部

    android listview 滚动到底部androidlistview滚动到底部,亲试有效:listView.setSelection(ListView.FOCUS_DOWN);//刷新到底部。注意:调用完了,不要调用listView.invalidateViews();

    2022年7月17日
    12
  • c++常用头文件和函数_C加加头文件

    c++常用头文件和函数_C加加头文件文章目录常用头文件下的函数介绍:cstring/string.h1.strlen()2.strcmp()3.strcpy()4.strcat()常用头文件下的函数介绍:cstring/string.hC语言提供了很多实用的数学函数,如果要使用,需要在程序开头添加头文件cstring或者string.h。//二者选一#include<cstring>#include<string.h>1.strlen()strlen(str)用于得到字符数组中第一个\0前

    2022年9月3日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号