算法
一组有用的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上获得的基准测试结果。