javascript之排序方法

来源:互联网 发布:网络打码兼职正规网站 编辑:程序博客网 时间:2024/06/05 02:25
 /*    *1.冒泡排序    */    var arr = [1,3,6,2,4,8,10,7,23,20];    function bubbleSort(arr){        var len = arr.length;        for(var i=0;i<len-1;i++){  //记录每一趟的比较索引值,共有(len-1)趟比较            for(var j=0;j<len-1-i;j++){  // 每一趟两两进行比较,每趟比较次数(len-1-i)值大的调换到后面的位置                if(arr[j] > arr[j+1]){                    var temp = arr[j+1];                    arr[j+1] = arr[j];                    arr[j] = temp;                 }            }        }        return arr;    }    console.log(bubbleSort(arr));    /*    *2. 选择排序    */    function selectSort(arr) {        var len = arr.length;           var minIndex,temp;   //记录每趟比较的最小值的索引值,最小值        for(var i=0;i<len-1;i++){            minIndex = i;              for (var j=i+1;j<len;j++){                if(arr[j] < arr[minIndex]){                    minIndex = j;                }            }            temp = arr[i];            arr[i] = arr[minIndex];            arr[minIndex] = temp;        }        return arr;    }    console.log(selectSort(arr));    /*    *3. 插入排序    **/     function insertionSort(arr){        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] > arr[current]) {                arr[preIndex+1] = arr[preIndex];                preIndex --;            }            arr[preIndex + 1] = current;        }        return arr;    }  console.log(insertionSort(arr)); /* * 4. Array.sort()方法排序 **/ var arr=[1,4,3,6,8,10,9];var arrSort = arr.sort(function(a,b){   return b-a;   // 降序排序   return a-b;   // 升序排序});console.log(arrSort);   // [10, 9, 8, 6, 4, 3, 1]