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)
上一篇 2022年5月1日 下午3:00
下一篇 2022年5月1日 下午3:20


相关推荐

  • VS2013/2015 各版本 产品密钥

    VS2013/2015 各版本 产品密钥VS2013 产品密钥 VisualStudioUltimate2013KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9VisualStudioPremium2013KEY(密钥):FBJVC-3CMTX-D8DVP-RTQCT-92494VisualStudioProfessiona

    2022年5月12日
    87
  • 怎么把python中的列表转化为字符串(python成长记录)

    怎么把python中的列表转化为字符串(python成长记录)怎么把python中的列表转化为字符串(python成长记录)1,列表中非字符串的元素的转换方法一:使用列表推导式转换list1=[‘happy’,1,6,’sad’]list1=[str(i)foriinlist1]print(list1)结果为[‘happy’,’1′,’6′,’sad’]方法二:使用map高级函数转换list1=[‘happy’,1,6,…

    2022年5月30日
    40
  • 邮箱正则表达式

    邮箱正则表达式正则提取国内外所有的邮箱经过测试准确率100%python代码块res=re.search(r’\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,8}\b’,description)ifres:emailAddress=res.group()else:emailAddr…

    2022年6月15日
    33
  • Meteor 加入账户系统

    Meteor 加入账户系统

    2022年2月4日
    68
  • python与java的区别(java 和python)

    java和python区别Python或Java,哪个更好?这个问题在全球开发者社区引发了许多激烈的讨论。初学者开发人员可能对应该掌握两者中的哪一个有所怀疑。初创公司和公司可能想知道哪种方案在他们的下一个项目中会更好。这两种语言都可以以相同的效率解决许多任务,这不足为奇。但是,在某些情况下,一个人可以击败另一个人。在本文中,我们将基于多个方面来分析它们的优缺点。对于那…

    2022年4月18日
    89
  • 谈谈人的主观能动性

    谈谈人的主观能动性主观能动性是什么 主观能动性是反映一个人对外界的主观认知的一个概念 简单来说就是人习惯性的想法与做法 可以将一个人的特点简单粗暴的分为 智力 性格 主观能动性这三点 1 智力 不得不承认 人与人之间的智力确实存在差距 这是非常残酷的现实 这是先天决定的 智力主要体现在一个人的理解能力与记忆能力 2 性格 这个与环境有着很大的关系 如果一个人成长在有爱 温馨的家

    2026年3月20日
    2

发表回复

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

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