js——算法等

1、快速排序
var arr = [23,56,345,25,4,235,45,67,25,44,56,6,333,4];

var quickSort = function(arr){
    if(arr.length <= 1){
        return arr;
    }
    var i = Math.floor((arr.length-1)/2);
    var arrLeft = [];
    var arrRight = [];
    //var pivot = arr.splice(i, 1);
    for(var a in arr){
        if(i == a){
            continue;
        }
        if(arr[a] <= arr[i]){
            arrLeft.push(arr[a]);
        }else{
            arrRight.push(arr[a]);
        }
    }
    /*arrLeft = quickSort(arrLeft);
    arrRight = quickSort(arrRight);*/
    return quickSort(arrLeft).concat(arr[i],quickSort(arrRight));
};


//O(n2),O(n2) O(1) 不稳定 冒泡
function bubbleSort(arr){
    var num = 1;
    for(var i=0;iarr[j+1]){
                var tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
    }
    console.log(num,arr.length);//56 11
    return arr;
}

//选择排序
function selectionSort(arr){
    var num = 1;
    var len = arr.length;
    for(var i=0;i=0 && arr[preIndex]>current){
            arr[preIndex+1] = arr[preIndex];
            preIndex--;
            num++;
        }
        arr[preIndex+1] = current;
    }
    console.log(num,arr.length);//24 11
    return arr;
}

/*希尔排序*/
function shellSort(arr) {
    var len =arr.length;
    var num = 1;
    gap = Math.floor(len/2);
    console.log("gap:"+gap);
    while(gap!==0){
        for(var i = gap;i=0 && temp

你可能感兴趣的:(js——算法等)