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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • threadlocal底层实现_数据库底层实现原理

    threadlocal底层实现_数据库底层实现原理ThreadLocal作用:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂性。package com.mupack;public class App{ private String content; public void setContent(String content) { this.content = content; } public Stri

    2022年8月8日
  • springMVC3学习(二)–ModelAndView对象

    springMVC3学习(二)–ModelAndView对象

    2021年11月13日
  • 哈希算法 数据结构_实现哈希表构造和查找算法

    哈希算法 数据结构_实现哈希表构造和查找算法一、什么是哈希表1.概述哈希表(Hashtable,也叫散列表),是根据关键码值(Keyvalue)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找

    2022年8月16日
  • java spel_SPEL表达式注入-入门篇

    java spel_SPEL表达式注入-入门篇SpringExpressionLanguage(简称SpEL)是一种强大的表达式语言,支持在运行时查询和操作对象图。语言语法类似于UnifiedEL,但提供了额外的功能,特别是方法调用和基本的字符串模板功能。同时因为SpEL是以API接口的形式创建的,所以允许将其集成到其他应用程序和框架中。个人理解就是Spring框架中的一种语言表达式,类似于Struts2中的OGNL的东西。一个最基础的…

    2022年9月11日
  • java integer范围值的大小_求最大值最小值的代码

    java integer范围值的大小_求最大值最小值的代码java中的Integer.MAX_VALUE和Integer.MIN_VLAUE最近在刷leetcode的题时,才发现有几道题的利用到Integer类型的最大值和最小值,尤其是在判断是否溢出的时候,有道题就非常经典直接判断最后一位,比如最大值231-1的最后一位是7,而最小值-231的最后一位是8,这样进行一个判断8.字符串转换整数(atoi)这道题对我在面试过程中被问到如何判…

    2022年9月8日
  • mybatis log plugin激活码【中文破解版】

    (mybatis log plugin激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日

发表回复

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

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