快速排序


//快速排序
var arr=[10,66,3,64,2,98];

function fn(arr){
     //取中间值
     var index=arr.length%2 == 0? arr.length/2:(arr.length+1)/2;
     var mid=arr[index];
    
     var left=[];
    
     var right=[];
    
     if(arr.length<2){
         return arr;
     }
    
     for(var i=0;i<arr.length;i++){
         if(index!=i&&arr[i]<mid){
             left.push(arr[i]);
         }
         
     }
     for(var i=0;i<arr.length;i++){
         if(index!=i&&arr[i]>=mid){
             right.push(arr[i]);
         }
         
     }
     return fn(left).concat(mid).concat(fn(right));
}

console.log(fn(arr));

posted @ 2019-04-10 11:25  荷风伊夏  阅读(122)  评论(0编辑  收藏  举报