Adds `[Heap]PriorityQueue.of` constructor. (#734)

Introduces efficient (linear-number of comparisons) "heapify" algorithm for converting an unsorted list to a heap-sorted list, using it for the of constructor, and after a large addAll operation, when it's presumed faster than just bubbling down all the new elements.

Also rewrites HeapPriorityQueue to use a growable list as backing array, instead of implementing the same thing using the double-when-full algorithm, and still having to deal with nullable cells. The platform growable list implementation is assumed to efficiently avoid some of those null checks.

3 files changed
tree: 96c4c579eed2749eab0f9ecabb1b21127f92c445
  1. .gemini/
  2. .github/
  3. pkgs/
  4. CONTRIBUTING.md
  5. LICENSE
  6. README.md
README.md

Overview

This repository is home to various Dart packages under the dart.dev publisher.

Packages

PackageDescriptionIssuesVersion
argsLibrary for defining parsers for parsing raw command-line arguments into a set of options and values using GNU and POSIX style options.issuespub package
asyncUtility functions and classes related to the ‘dart:async’ library.issuespub package
charactersString replacement with operations that are Unicode/grapheme cluster aware.issuespub package
collectionCollections and utilities functions and classes related to collections.issuespub package
convertUtilities for converting between data representations. Provides a number of Sink, Codec, Decoder, and Encoder types.issuespub package
cryptoImplementations of SHA, MD5, and HMAC cryptographic functions.issuespub package
fixnumLibrary for 32- and 64-bit signed fixed-width integers with consistent behavior between native and JS runtimes.issuespub package
lintsOfficial Dart lint rules. Defines the ‘core’ and ‘recommended’ set of lints suggested by the Dart team.issuespub package
loggingProvides APIs for debugging and error logging, similar to loggers in other languages, such as the Closure JS Logger and java.util.logging.Logger.issuespub package
os_detectPlatform independent OS detection.issuespub package
pathA string-based path manipulation library.issuespub package
platformA pluggable, mockable platform information abstraction for Dart.issuespub package
typed_dataUtility functions and classes related to the dart:typed_data library.issuespub package

Publishing automation

For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

For additional information about contributing, see our contributing page.