冒泡排序和快速排序的算法
實現冒泡排序:
[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));
冒泡排序和快速排序的算法