js中快速排序的代码很直观,java的很难理解

快速排序"的思想很简单,整个排序过程只需要三步:

(1)在数据集之中,选择一个元素作为"基准"(pivot)。

(2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。

(3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。

var quickSort = function(arr) {

  if (arr.length <= 1) { return arr; }

  var pivotIndex = Math.floor(arr.length / 2);

  var pivot = arr.splice(pivotIndex, 1)[0];//取出基准元素,原始数组并且删除该元素

  var left = [];

  var right = [];

  for (var i = 0; i < arr.length; i++){

    if (arr[i] < pivot) {

      left.push(arr[i]);//小于基准的往左边数组放

    } else {

      right.push(arr[i]);//大于基准的往右边数组放

    }

  }
       //左边的数组 +  基准元素  +右边数组 ,即为有序数组
  return quickSort(left).concat([pivot], quickSort(right));

};

js很直观,但是看了java的很多就不直观

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概念: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,则可分别对这两部分记录继...
    Demo_Yang阅读 4,110评论 1 4
  • 上期文章排序算法——(2)Python实现十大常用排序算法为大家介绍了十大常用排序算法的前五种(冒泡、选择、插入、...
    猪哥66阅读 3,106评论 0 0
  • 1 前言 吴军《Google 方法论》专栏「计算机算法,谈谈提高效率的本质」文章中提及算法的重要性,未来是人工智能...
    dongbingliu阅读 4,509评论 2 4
  • 各大排序算法的时间空间复杂度 定义 快速排序是由冒泡排序进化而来。 在数据集之中,选择一个元素作为"基准"(piv...
    conowen阅读 1,558评论 0 0
  • 一、题目 题目:手写一个快速排序 例子: 二、代码实现 “快速排序”思路: 在数组中,选择一个元素作为“基准”; ...
    HYC_阅读 3,590评论 0 0

友情链接更多精彩内容