dabocaiqq
2018-06-15 03:50
采纳率: 66.6%
浏览 1.4k

javascript如何用数组实现冒泡排序的算法,不用sort函数怎么实现?

javascript如何用数组实现冒泡排序的算法,不用sort函数怎么实现?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 已采纳
     var examplearr=[8,94,15,88,55,76,21,39];
    function sortarr(arr){
        for(i=0;i<arr.length-1;i++){
            for(j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    var temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        return arr;
    }
    sortarr(examplearr);
    console.log(examplearr);
    
    打赏 评论
  • wanliofficial 2018-06-15 03:55

    /*原生方法。。快速排序*/

        //1、找一个基准点  
        //2、建立两个数组,分别存储左边右边的数组  
        //3、利用递归,进行下次比较  
        function quick_sort (arr) {  
            if(arr.length<=1){  
                return arr;  
            }  
    
            var num=Math.floor(arr.length/2);//找到基准点  
    
            var numValue=arr.splice(num,1);//基准点对应的基准值  
    
            var left=[];//左边数组  
            var right=[];//右边数组  
    
            for (var i = 0; i < arr.length; i++) {  
                if (arr[i]<numValue) {  
                    left.push(arr[i]);//小于这个基准值的放到左边  
                }else{  
                    right.push(arr[i])  ;//大于放到右边                  
                }  
            };  
            return quick_sort(left).concat([numValue],quick_sort(right));//连接  
        }  
    
        alert(quick_sort([12,5,6,37,22,40]))  
    
    打赏 评论
  • 一曲微茫度此生 2018-06-15 04:06

    function paoSort( $arr ){
    $len = count($arr);
    for ($i = 1; $i< $len ; $i++){
    for ($k = 0; $k < $len - $i ; $k++){
    if($arr[$k] < $arr[$k+1]){
    $tmp = $arr[$k];
    $arr[$k] = $arr[$k+1];
    $arr[$k +1] = $tmp;
    }
    }
    }
    return $arr;
    }

    打赏 评论
  • 谭光志 2018-06-15 06:52
    /**
     * [冒泡排序]
     * @param  {array} [乱序数组]
     * @return {array} [顺序/倒序数组]
     */
    function bubble(arry) {
        let len = arry.length - 1
        let temp
        for (let i = 0; i < len; i++) {
            for (let j = 0; j < len; j++) {
                if (arry[j] > arry[j + 1]) {
                    temp = arry[j]
                    arry[j] = arry[j + 1]
                    arry[j + 1] = temp
                }
            }
        }
        return arry
    }
    
    打赏 评论

相关推荐 更多相似问题