快速排序 算法思想:找到数组的中间项,从数组中剔除,对于剩余的元素依次跟中间项比较,小的放右边,大的放在左边。得到的左右两个数组再分别重复以上步骤,以此类推
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
let middleIndex = Math.floor(arr.length / 2);
let middleValue = arr.splice(middleIndex, 1)[0];
let leftArr = [];
let rightArr = [];
for (let i = 0;i < arr.length;i++) {
arr[i] < middleValue ? leftArr.push(arr[i]) : rightArr.push(arr[i]);
}
return quickSort(leftArr).concat(middleValue, quickSort(rightArr));
}
冒泡排序 算法思想:将数组中的树两两比较,小的放在左边,大的放在右边。
function bubble(arr) {
let middle;
for (let i = 1;i <= arr.length - 1;i++) {
for (let j = 1;j <= arr.length - i;j++) {
if (arr[j] > arr[j + 1]) {
middle = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = middle;
}
}
}
return arr;
}