A collection of useful algorithms in Dart with keeping performance and flexibility on mind.


The following import will give you access to all algorithms declared in this library.

import 'package:algorithmic/algorithmic.dart';

You can also import these algorithms separately:

Libraries Imports
Search algorithms 'package:algorithmic/searching.dart'


Searching algorithms

Linear Search

Exported Methods Performance Tests Benchmark Since
linearSearch() O(n) ✔️ ✔️ 0.0.1
linearSearchBy() O(n) ✔️ ✔️ 0.0.4
linearSearchReversed() O(n) ✔️ ✔️ 0.0.1
linearSearchReversedBy() O(n) ✔️ ✔️ 0.0.4

Binary Search

Exported Methods Performance Tests Benchmark Since
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


All benchmarking files are stored inside the ‘./benchmark’ folder. You can check it directly via the following command:

$ dart run benchmark

You can also check the benchmark.log file for the benchmark result that I got on my PC.


View Github