排序算法
一、冒泡法
    前后两个值相比
    function bubble(){
        var arr = [34,5,7,2,4,6,8];
        var len = arr.length;
        for(var i=0; i<len; i++){
            // 这里 j<len-1 也可以,但j<len-1-i的目换是不用在去比较之前的结果 
            for(var j=0; j<len-1-i; j++){   
                if(arr[j] > arr[j+1]){        // 从小向大, 如果从大到小改成 <
                    var temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }
    console.log(bubble());
 
 
二、选择排序
    用当前的所在的数来与之后所有的数来判断找出最小数插入
    function selectionSort(){
        var arr = [34,5,7,26,8,13];
        var len = arr.length;
        var minIndex, temp;
        for(var i=0; i<len; i++){
            minIndex = i;               // 循环进来后先指向当前第一个要比较的数,下面循环会将比较小最值的下标赋给它
            // 找出之后的最小数
            for(var j=i+1; j<len; j++){
                if(arr[j] < arr[minIndex]){     // 这里控制排序
                    minIndex = j;
                }
            }
            // 将最小数排到当前i的位置
            temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
        }
        return arr;
    }
    console.log(selectionSort());
 
 
三、插入排序
    将一个值与之前的值进行比较如果大于当前值就插入在当前位置
    function insertionSort(){
        var arr = [34,5,7,26,8,13];
        var len = arr.length;
        var preIndex, current;
        for(var i=1; i<len; i++){
            preIndex = i-1;
            current = arr[i];   // 存储当前值
        while(preIndex >= 0 && arr[preIndex] > current){
            console.log(arr[preIndex], current);
            arr[preIndex+1] = arr[preIndex];        // 将
            preIndex--;
        }
            arr[preIndex+1] = current;
        }
        return arr
    }
    console.log(insertionSort());
 
 
快速排序 

 
 
国内查看评论需要代理~