排序算法

一、冒泡法

    前后两个值相比

    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());

插入排序

快速排序 

选择排序
选择排序

| https://wowphp.com/post/komxdx8qe862.html // 排序