您的位置:首页 > Web前端 > JavaScript

JS中冒泡排序,选择排序,快速排序

2018-08-17 21:10 246 查看
    var arr = [1,4,2,9,7,6,5,4,7,5];     // 冒泡排序(通俗的说就是j 和 j+1打,谁赢了谁去后面)       for(var i = 1;i<arr.length;i++){         for(var j = 0;j<arr.length - i;j++){             if(arr[j]>arr[j+1]){                 var temp =  arr[j];                 arr[j] = arr[j+1];                 arr[j+1] = temp;             }         }     }     console.log(arr);

    // 选择排序(通俗的说就是j 和i打,谁赢了谁去前面)       for(var i = 0;i<arr.length-1;i++){         for(var j = i+1;j<arr.length;j++){             if(arr[i]>arr[j]){                 var temp = arr[j];                 arr[j] = arr[i];                 arr[i] = temp;             }         }     }     console.log(arr);


    //快速排序:         取数组中间下标的值,再将其他值与该值相比,大于加入右数组,小于加入左数组,递归调用       function quick(arr){         // 递归出口条件         if(arr.length<=1){return arr;}         // 获取中间下标         var centerindex = arr.length%2==0?arr.length/2:(arr.length+1)/2;         // 获取中间下标对应的值         var centerElement = arr[centerindex];         // 创建左右数组         var left = [];         var right = [];         // 循环判断,若元素大于中间下表对应的值则加入左数组,反之加入右数组         for(var i = 0;i<arr.length;i++){             if((i!=centerindex)&&(arr[i]>=centerElement)){                 right.push(arr[i]);             }             if((i!=centerindex)&&(arr[i]<centerElement)){                 left.push(arr[i]);             }         }         //递归调用该函数         return quick(left).concat(centerElement).concat(quick(right));     }    console.log(quick(arr));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐