var arr = [1,3,5,7,9,2,4,6,8]
冒泡排序
function bubbleSort(arr){
var tmp;
var len = arr.length;
for (var i = 0; i <len-1; i++) {
for (var j = 0; j < len-1-i; j++) {
if (arr[j] > arr[j+1]) {
tem = arr[j+1];
arr[j+1] = arr[j];
arr[j] = tem;
}
}
}
return arr;
}
这里可以立一个flag,如果一遍排序没有数据交换,那么说明数据本身就是正确的排序,直接停止循坏,减少性能
选择排序
function selectSort(arr){
var tmp;
var len = arr.length;
for (var i = 0; i <len-1; i++) {
for (var j = i+1; j < len; j++) {
if (arr[i] > arr[j]) {
tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
}
return arr;
}
快速排序
function quickSort2(arr){
if (arr.length <= 1) return arr;
var left = [],
right = [],
pivotIndex = Math.floor(arr.length/2),
pivot = arr.splice(pivotIndex,1)[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
}else{
right.push(arr[i])
}
}
return quickSort2(left).concat([pivot],quickSort2(right))
}