快速排序

window.onload = function()

{

  function sort(arr)

  {

    //如果数组长度小于等于1则无需判断直接返回 

    if(arr.length<=1)

    {

      return arr;

    } 

    //获取基准点

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

    //获取基准点的值,splice(index,1)该函数可以返回数组中被删除的那个数arr[index+1]

    var midIndexVal = arr.splice(midNum,1);

    //遍历数组

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

    {

      //判断该值是否大于基准值,如果大于则放在right中,如果小于则放入left中

      var left = [];

      var right = [];

      if(arr[i]<midIndexVal)

      {

        left.push(arr[i]);

      }

      else

      {

        right.push(arr[i]);  

      }

    }

    return sort(left).concat(midIndexVal,sort(right));

  }

  

  var arr=[3,6,2,9,4,1,7];

  console.log(sort(arr));

    

}

posted @ 2018-04-10 14:57  橘子_orange  阅读(227)  评论(0)    收藏  举报