前端常见排序
快速排序
var quickSort = function (arr) {
if (arr.length <= 1) return arr;
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
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));
};
function quickSort(arr) {
if (arr.length <= 1) return arr;
const left = [];
const right = [];
const mid = arr.shift();
arr.forEach((item) => {
if (item <= mid) left.push(item);
else right.push(item);
});
return quickSort(left).concat(mid).concat(quickSort(right));
}二分查找是我们目前为止遇到的第一个时间复杂度为 O(logn) 的算法。
冒泡排序
归并排序
插入排序
最后更新于
这有帮助吗?