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

手写数组快速排序

作者: 王康_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));
    }
    

    相关文章

      网友评论

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

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