冒泡排序

 冒泡排序的原理:(图片来源于网络)

 

 

下面我们用两种方法实现冒泡排序:
var afterDelete =  [11, 2, 6, 31, 5]
 
方法一:
function range(arr) {
    
    for(var i=0;i<arr.length-1;i++){

        //索引值是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;
            }
        }
                
    }
    return arr
}

var rangeResult = range(afterDelete)
console.log(rangeResult)   // [2, 5, 6, 11, 31]

 

方法二:

function quickSort(elements){

        if(elements.length<=1){
            return elements;
        }
        var index = Math.floor(elements.length/2);
        //console.log(index);//5->5->4->3->2->2->1
        var pivot = elements.splice(index,1)[0];//获取删除的数字
        //console.log("pivot="+pivot);//1-8-7-3-6-4.4-5.5
        var arrLeft = [];
        var arrRight = [];
        for(var i = 0;i<elements.length;i++){
            if(elements[i] < pivot){
                arrLeft.push(elements[i]);
                // console.log("arrLeft="+arrLeft);
            }else{
                arrRight.push(elements[i]);
                // console.log("arrright="+arrRight)
            }
        }
        return quickSort(arrLeft).concat([pivot],quickSort(arrRight));
      
    }
    
    console.log(quickSort(afterDelete));  // [2, 5, 6, 11, 31]

 

 

 

posted @ 2019-11-01 11:10  牧羊狼  阅读(160)  评论(0编辑  收藏  举报