📅  最后修改于: 2023-12-03 15:05:38.001000             🧑  作者: Mango
排序是计算机科学中广泛使用的概念,它能够使计算机程序按照一定的顺序排列不同的元素或对象。在 TypeScript 中,排序是一种常见的需要,而本文将会阐述如何以 TypeScript 进行排序。
常规排序算法包括以下几种:
这里将演示如何使用 TypeScript 实现冒泡排序与快速排序算法。
冒泡排序的基本思路是在每次比较相邻两个元素时,如果顺序不正确则交换它们的位置。这样经过一轮比较后,最大的元素会被交换到数组的最后一个位置。重复 n 次这样的比较操作,数组就会被完全排序。
function bubbleSort(arr: number[]): number[] {
const len = arr.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
bubbleSort
arr
(number[] 类型的数组)快速排序的基本思路是通过分治法的思想进行排序。首先选择一个中轴值(pivot),将数组按照 pivot 分为两个子数组,然后对这两个子数组分别进行递归排序。
function quickSort(arr: number[]): number[] {
if (arr.length <= 1) {
return arr;
}
const pivotIndex = Math.floor(arr.length / 2);
const pivot = arr.splice(pivotIndex, 1)[0];
const left = [];
const right = [];
for (let 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));
}
quickSort
arr
(number[] 类型的数组)以上就是使用 TypeScript 实现冒泡排序与快速排序的方法。很多时候,在实际项目中,需要根据自己的业务场景来选择合适的排序算法,而这里演示的只是其中的一部分可能。希望本文对你有所帮助!