📜  ts 排序 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:05:38.001000             🧑  作者: Mango

TypeScript Sort - 排序 TypeScript

排序是计算机科学中广泛使用的概念,它能够使计算机程序按照一定的顺序排列不同的元素或对象。在 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 实现冒泡排序与快速排序的方法。很多时候,在实际项目中,需要根据自己的业务场景来选择合适的排序算法,而这里演示的只是其中的一部分可能。希望本文对你有所帮助!