冒泡排序(BubbleSort)
方式
- 定义双循环,外层指向最后一个未排序元素,内层指向首元素
- 每个指向的元素与前一个元素作比较,如果前一个元素大,则交换两个元素
核心代码
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]];
}
}
};