js实现快速排序

function quick_sort(arr){
    _quick_sort(arr, 0, arr.length -1);
}

function _quick_sort(arr, start, end){
    if(start < end){
        var middle = _quick(arr, start, end);
        _quick_sort(arr, start, middle -1);
        _quick_sort(arr, middle + 1, end);
    }
}

function _quick(arr, start, end){
    var tmp = arr[start];
    var i = start,j = end;
    console.log([start, end]);
    while( i < j ){
        if(arr[i] <= tmp){
            i++;
        }
        if(arr[j] >= tmp){
            j--;
        }
        if(i < j){
            swap(arr, i, j);
        }
        
    }
    if(i != start){
        swap(arr, j, start);
    }
    
    console.log(arr);
    return j;
}

function swap(arr, i, j){
    var tmp = arr[i];
    arr[i] = arr[j];
    arr[j] = tmp;
}

var arr = [22, 31, 1, 9, 99, 68, 55, 30];
quick_sort(arr);
console.log(arr);

 

posted @ 2016-02-19 16:59  天空中的蜂蜂  阅读(186)  评论(0编辑  收藏  举报