JS常用数组排序方法汇总
- Bubble_Sort 冒泡排序
- 每一轮从数组头部开始,每两个元素比较大小并进行交换 直到一轮当中最大或最小的值被放在数组的尾部,然后,不断重复这个过程,直到所有的元素都排好位置.
    // var arr1 = [1, 3, 14, 520, 99, 2, 6];
    var arr1 = [2, 3, 7, 6, 4, 5, 1];
    for (var i = 0; i < arr1.length; i++) { 
        for (var j = 0; j < arr1.length - i - 1; j++) { 
            if (arr1[j] > arr1[j + 1]) {    
                var temp = arr1[j];
                arr1[j] = arr1[j + 1];
                arr1[j + 1] = temp;
            }
        }
    }
    console.log(arr1);
- 演算过程
 初始值:2, 3, 7, 6, 4, 5, 1- 2, 3, 6, 7, 4, 5, 1
- 2, 3, 6, 4, 7, 5, 1
- 2, 3, 4, 6, 7, 5, 1
- 2, 3, 4, 6, 5, 7, 1
- 2, 3, 4, 5, 6, 7, 1
- 2, 3, 4, 5, 1, 6, 7
 
- Insertion_Sort 插入排序
- 不断的将尚未排好序的数插入到已经排好序的部分.
    var arr2 = [1, 3, 14, 520, 99, 2, 6];
    for (var i = 0; i < arr2.length; i++) {
        var n = i;
        while (arr2[n] > arr2[n + 1] && n >= 0) {
            var temp = arr2[n];
            arr2[n] = arr2[n + 1];
            arr2[n + 1] = temp;
            n--;
        }
    }
    console.log(arr2);
- 演算过程 
 初始值:2, 3, 7, 6, 4, 5, 1- 1, 3, 7, 6, 4, 5, 2
- 1, 2, 7, 6, 4, 5, 3
- 1, 2, 3, 6, 4, 5, 7
- 1, 2, 3, 4, 6, 5, 7
- 1, 2, 3, 4, 5, 6, 7
- 1, 2, 3, 4, 5, 6, 7
- 1, 2, 3, 4, 5, 6, 7
 
- 冒泡排序中,经过每一轮的排序处理后,数组后端的数都是排好序的; 
- 插入排序中,经过每一轮的排序处理后,数组前端的数都是排好序的; 
- Select_Sort 选择排序
- 通过比较,选出最小的数放在第一位,然后在其余所有的数中选出最小的数排在第二位,以此类推,直到排序结束. 
- 在排序中每一轮比较会把最小的数移动到最前,所以相互比较的次数每一轮都会比前一轮少一次. - var arr3 = [1, 3, 14, 520, 99, 2, 6]; var temp; for (var i = 0; i < arr3.length - 1; i++) { for (var j = i + 1; j < arr3.length; j++) { if (arr3[i] > arr3[j]) { temp = arr3[i]; arr3[i] = arr3[j]; arr3[j] = temp; } } } console.log(arr3);
- 演算过程 
 初始值:2, 3, 7, 6, 4, 5, 1- 1, 3, 7, 6, 4, 5, 2
- 1, 2, 7, 6, 4, 5, 3
- 1, 2, 3, 6, 4, 5, 7
- 1, 2, 3, 4, 6, 5, 7
- 1, 2, 3, 4, 5, 6, 7
 
- sort()方法排序 - var arr4 = [1, 3, 14, 520, 99, 2, 6]; arr4.sort(function (a, b) { return a - b; //正序 // return b - a; //倒序 }) console.log(arr4);
 
                     
                     
                        
                        