虽然是基础,但是也是无意之中写了好几遍然后总是漏洞百出,所以在这里记录一下。
先说快速排序:
var sortArr = [2,4,3,5,64,56,0,100,1];
function quick(arr){
if(arr.length <= 1){
return arr;
}
var middleIndex = Math.floor(arr.length/2);
var middle = arr.splice(middleIndex,1); // 找基准值
var left = [];
var right = [];
for(var i = 0; i<arr.length; i++){
if(arr[i] < middle){
left.push(arr[i]);
}else{
tight.push(arr[i]);
}
}
return quick(left).concat(middle,quick(right));
}
quick(oldArr);
console.log(quick(sortArr));
坑: 我在最后调用一下quick(oldArr) 然后在输出,就会出现错误 (如上标黄那里)
第二种说冒泡排序:
var sortArr = [2,4,3,5,64,56,0,100,1];
function bubble(arr){
for(var i = 0; i<arr.length; i++){
for(var j = 0; j<arr.length-1; j++){
if(arr[i]<arr[j]){
var num = arr[i];
arr[i] = arr[j];
arr[j] = num;
}
}
}
console.log(arr);
}
bubble(sortArr);