美文网首页
手写数组快速排序

手写数组快速排序

作者: 王康_Wang | 来源:发表于2017-02-01 14:42 被阅读0次

(1)在数据集之中,选择一个元素作为”基准”。
(2)所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。
(3)对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。

function sort(arr) {
  if (arr.length < 2) {
    return arr;
  } else {
    var arrLeft = [];
    var arrRight = [];
    var baseIndex = Math.floor(arr.length/2);
    var base = arr.splice(baseIndex,1)[0];
    for (var i=0; i<arr.length; i++) {
      if (arr[i] < base) {
        arrLeft.push(arr[i]);
      } else {
        arrRight.push(arr[i]);
      }
    }
  }
  return sort(arrLeft).concat([base],sort(arrRight));
}

相关文章

  • 手写数组快速排序

    (1)在数据集之中,选择一个元素作为”基准”。(2)所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”...

  • 【JS编程系列】手写一个快速排序

    一、题目 题目:手写一个快速排序 例子: 二、代码实现 “快速排序”思路: 在数组中,选择一个元素作为“基准”; ...

  • 滴滴面试题

    1、快速排序和二分排序选一个手写。 2、手写一个 eventEmitter。 3、手写两个数组的交集。 两层 fo...

  • 算法

    排序算法有哪些?最快的排序算法是哪个?手写一个冒泡排序手写快速排序代码快速排序的过程、时间复杂度、空间复杂度手写堆...

  • 算法

    排序算法有哪些? 最快的排序算法是哪个? 手写一个冒泡排序 手写快速排序代码 快速排序的过程、时间复杂度、空间复杂...

  • 算法记录

    快速排序 基本算法: 归并排序讲数组分为两个子数组分别排序,并将有序的子数组归并使得整个数组排序; 快速排序通过一...

  • JS面试算法题

    数组快速排序 数组去重

  • PHP排序算法

    排序算法 冒泡排序(数组排序) 快速排序(数组排序) 参考 http://www.cnblogs.com/enia...

  • 数组排序

    数组排序 sort排序 冒泡排序 快速排序 插入排序

  • 快速排序

    手写java版快速排序算法实现

网友评论

      本文标题:手写数组快速排序

      本文链接:https://www.haomeiwen.com/subject/ulclittx.html