1. 程式人生 > >冒泡排序和快速排序的算法

冒泡排序和快速排序的算法

plain 如果 var scrip html length function splice floor

實現冒泡排序:

[html] view plain copy

var times=0;

var bubbleSort=function(arr){

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[i];

arr[i]=arr[j];

arr[j]=temp;

}

console.log("第"+(++times)+"次排序後:"+arr);

}

}

return arr;

}

console.log("The result is:"+bubbleSort(arr));

實現快速排序:

[javascript] view plain copy

var times=0;

var quickSort=function(arr){

//如果數組長度小於等於1無需判斷直接返回即可

if(arr.length<=1){

return arr;

}

var midIndex=Math.floor(arr.length/2);//取基準點

var midIndexVal=arr.splice(midIndex,1);//取基準點的值,splice(index,1)函數可以返回數組中被刪除的那個數arr[index+1]

var left=[];//存放比基準點小的數組

var right=[];//存放比基準點大的數組

//遍歷數組,進行判斷分配

for(var i=0;i<arr.length;i++){

if(arr[i]<midIndexVal){

left.push(arr[i]);//比基準點小的放在左邊數組

}

else{

right.push(arr[i]);//比基準點大的放在右邊數組

}

console.log("第"+(++times)+"次排序後:"+arr);

}

//遞歸執行以上操作,對左右兩個數組進行操作,直到數組長度為<=1;

return quickSort(left).concat(midIndexVal,quickSort(right));

};

console.log(quickSort(arr));

冒泡排序和快速排序的算法