1.冒泡排序: 最简单的排序算法,代码实现:
function bubbleSort(arr) {
var len = arr.length;
for(var i=0; i<len; i++) {
for(var j=0; j< len - 1 - i; j++) {
console.log(len - 1 - i);
if(arr[j] > arr[j+1]){
var temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
- 快速排序: 效率高,它是处理大数据最快的排序算法之一了 ,
快速排序的最坏运行情况是O(n²),比如说顺序数列的快排。但它的平摊期望时间是O(n log n) ,且O(n log n)记号中隐含的常数因子很小,比复杂度稳定等于O(n log n)的归并排序要小很多。所以,对绝大多数顺序性较弱的随机数列而言,快速排序总是优于归并排序。
快速排序的内循环比大多数排序算法都要短小,这意味着它无论是在理论上还是在实际中都要更快。它的主要缺点是非常脆弱,在实现时要非常小心才能避免低劣的性能。
function quickSort(arr) {
if (arr.length < 2) return arr;
var pivotIndex = Math.floor(arr.length / 2); //取基准点
var pivot = arr.splice(pivotIndex, 1)[0]; //取基准值,splice(index, 1)函数可以返回数组中被删除的那个,会改变原始数组
var left = []; //存放比基准点小的数组
var right = []; //存放比基准点大的数组
for (var i = 0; i < arr.length; i++) { //遍历数组,进行判断
if (arr[i] < pivot) {
left.push(arr[i]); //放入比基准值小的元素
} else {
right.push(arr[i]); //放入比基准点大元素
}
}
return quickSort(left).concat([pivot], quickSort(right));
}
3.其他算法后续更新