跳到主要内容

冒泡排序(BubbleSort)

方式

  1. 定义双循环,外层指向最后一个未排序元素,内层指向首元素
  2. 每个指向的元素与前一个元素作比较,如果前一个元素大,则交换两个元素

核心代码

import { Comparator } from '@/shared';

export const bubbleSort = <T = any>(compare: Comparator<T>, list: T[]) => {
for (let len = list.length, i = len - 1; i >= 0; i--) {
for (let j = 0; j <= i; j++) {
if (compare(list[j - 1], list[j]) > 0) [list[j - 1], list[j]] = [list[j], list[j - 1]];
}
}
};