算法

一组有用的Dart算法,同时考虑了性能和灵活性。

用法

以下导入将使您可以访问此库中声明的所有算法。

import 'package:algorithmic/algorithmic.dart';

您也可以单独导入这些算法

导入
搜索算法 'package:algorithmic/searching.dart'

算法

搜索算法

线性搜索

导出方法 性能 测试 基准测试
linearSearch() O(n) ✔️ ✔️ 0.0.1
linearSearchBy() O(n) ✔️ ✔️ 0.0.4
linearSearchReversed() O(n) ✔️ ✔️ 0.0.1
linearSearchReversedBy() O(n) ✔️ ✔️ 0.0.4

二分搜索

导出方法 性能 测试 基准测试
lowerBound() O(log n) ✔️ ✔️ 0.0.3
lowerBoundBy() O(log n) ✔️ ✔️ 0.0.4
upperBound() O(log n) ✔️ ✔️ 0.0.3
binarySearch() O(log n) ✔️ ✔️ 0.0.3
binarySearchMax() O(log n) ✔️ ✔️ 0.0.3

基准测试

所有基准测试文件都存储在“./benchmark”文件夹中。您可以通过以下命令直接查看

$ dart run benchmark

您还可以查看benchmark.log文件,其中包含我在PC上获得的基准测试结果。

GitHub

查看 Github