手写快速排序
...大约 1 分钟
function quickSort(arr) {
if (arr.length <= 1) {
return arr; // 基本结束条件
}
const pivot = arr[0]; // 选择一个基准点,这里选择第一个元素
const left = []; // 定义左数组
const right = []; // 定义右数组
// 遍历数组,根据与基准点的比较将元素分配到左右数组
for (let i = 1; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]); // 小于基准点的放在左边
} else {
right.push(arr[i]); // 大于等于基准点的放在右边
}
}
// 递归调用快速排序,并对左右数组进行排序
return [...quickSort(left), pivot, ...quickSort(right)];
}
// 示例
const array = [7, 2, 1, 6, 8, 5, 3, 4];
console.log(quickSort(array)); // 输出: [1, 2, 3, 4, 5, 6, 7, 8]function quickSort(arr: number[], startIndex = 0): number[] {
if (arr.length <= 1) return arr;
const left: number[] = [],
right: number[] = [],
startNum = arr.splice(startIndex, 1)[0];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < startNum) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quickSort(left), startNum, ...quickSort(right)];
}javascript
let arr = [1, 2, 3, 4, 5];
let removedElement = arr.splice(1, 1)[0]; // arr 变为 [1, 3, 4, 5],removedElement 为 2在这个例子中,splice(1, 1) 从索引 1 的位置删除了一个元素(即数字 2),然后 [0] 获取了这个被删除的元素。所以,removedElement 的值是 2。
赞助





