面试经常会被问道的排序,话不多说。
冒泡排序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function maopao(arr) { for(var i = 0,len = arr.length;i < len;i++) { for(var j = 0;j < len-i-1;j++) { if(arr[j] > arr[j+1]) { var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } return arr; }
var arr = [23,43,12,44,1,4,2,13];
|
快速排序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function kuaipai(arr) { if(arr.length < 1) { return arr; }
var middle = Math.floor(arr.length/2); var middleNum = arr.splice(middle,1)[0];
var left=[ ],right=[ ];
for(var i = 0;i<arr.length;i++) { if(arr[i] < middleNum) { left.push(arr[i]); }else { right.push(arr[i]); } }
return kuaipai(left).concat([middleNum],kuaipai(right)); }
|
插入排序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function charu(arr) { var j,key,len = arr.length;
for(var i = 0;i < len;i++) { j = i; key = arr[j];
while(--j > -1) { if(arr[j] > key) { arr[j+1] = arr[j]; }else { break; } } arr[j+1] = key; } return arr; }
|