See pop for the Dart package that is being actively maintained. Much of the original vision of this package will be implemented there.
A delicious Dart library.
I'm going to write a proper description later, I promise.
With this package, I'm learning both how to write reusable, idiomatic Dart code and how to implement common algorithms and data structures. The package is not ready for production use yet and the API might change from one release to another.
This package is a collection of common data structures and algorithms that are not part of the Dart SDK,
the Dart dart:collection
library,
and the package:collection
package by the Dart team.
Pros and cons
Different usages: xyzSort, extension on List: sortWith(xyzSorter), and xyzSort.
Why
Benchmark
Benchmark disclaimer: always do your own before switching from the default sorting alg.
TODO: priority queues are in collections TODO: in some cases, I reimplemented stuff. why: probably because I think it's better?
Here are some issues that I still don't fully understand and I want to research later.
- Would be great to understand the
library
keyword - library+part+part+of (Quiver) vs export (Flutter)
- Why we needed a class for sorting? Could have we just use simple functions?
- Benchmarks: For example, benchmark the three solutions for insertion sorts in Programming Pearls.
- Depending on the speed and code readability, keep one (as it is a library, prefer speed)
- generic arg on class or on method?
- it would be good to have a stricter lint rule set up for this project, it's easy to be messy.