31 lines
1.3 KiB
JavaScript
31 lines
1.3 KiB
JavaScript
import { generateRandomArray, isSort, measureTime } from '../util/index.mjs';
|
|
import { shellSort } from './shell-sort.mjs';
|
|
import insertionSort from './insertion-sort.mjs';
|
|
import { bubbleSort } from './bubble-sort.mjs';
|
|
import { mergeSort } from './merge-sort.mjs';
|
|
import {
|
|
quickSort,
|
|
quickSort2,
|
|
quickSort3,
|
|
quickSort4,
|
|
quickSort5,
|
|
} from './quick-sort.mjs';
|
|
import bucketSort from './bucket-sort.mjs';
|
|
import { radixSortByLsd } from './radix-sort.mjs';
|
|
import { heapSort, heapSort2 } from './heap-sort.js';
|
|
|
|
const arr = generateRandomArray(100);
|
|
|
|
measureTime(bubbleSort, arr.slice());
|
|
measureTime(insertionSort, arr.slice());
|
|
measureTime(shellSort, arr.slice());
|
|
measureTime(mergeSort, arr.slice()); // 归并排序会返回一个新数组,不对原数组修改
|
|
measureTime(quickSort, arr.slice());
|
|
measureTime(quickSort2, arr.slice()); // 挖坑法分解数组
|
|
measureTime(quickSort3, arr.slice()); // 前后指针分解数组
|
|
measureTime(quickSort4, arr.slice()); // 不使用递归处理
|
|
measureTime(quickSort5, arr.slice()); // 去除不必要代码
|
|
measureTime(bucketSort, arr.slice()); // 去除不必要代码
|
|
measureTime(radixSortByLsd, arr.slice());
|
|
measureTime(heapSort, arr.slice()); // 自上而下的堆
|
|
measureTime(heapSort2, arr.slice()); // 自下而上的堆
|