All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
This version adds type annotations and doc strings to many methods.
- Type annotations
pylint
andmypy
as linters
- replaced
pass
with...
- replaced
.format()
with "f-strings"
- Versioning will change to yyyy.mm format soon
child_left
andchild_right
in theBinaryTree
This version fixes various bugs and performance issues found during the book review.
- shebang line to
__init__.py
files flake8
andcodecov
are part of the development requirements now
- Implementation of Bubble, Merge, and Heap sorting algorithms
- Start using
venv
instead ofpipenv
- Tree methods will be renamed for better alignment with the textbook
- Graph methods will be renamed for better alignment with the textbook
- Incomplete (not implemented) methods will be removed in 3.1.0
- N/A
- Heapsort implementation is more efficient
- N/A
This version follows pylint recommendations and uses black to format code.
- Shebang line to all source files
- Source formatting using black
- N/A
- Some code as recommended by pylint
- N/A
- N/A
This version adds examples of usage and updates tests.
- HOWTO explaining the usage of this package.
- HOWTO-DEV with the development guidelines.
- Tests for all algorithms and data structures are using pytest.
- N/A
- N/A
- N/A
- N/A
Initial release.
It's a rewrite of the pythonds project with the code restructured and (mostly) PEP8-compliant. The changes are breaking and may be inconsistent with the current edition of the textbook.
The changes between pythonds and pythonds3 are as follows:
- Linked list implementation (unordered and ordered).
- HashTable.
- Sorting algorithms
- Bubble
- Selection
- Insertion
- Shell sort
- Mergesort
- Quicksort
- Heapsort
- Dijkstra's shortest path algorithm.
- Bellman-Ford shortest path algorithm.
- Prim's spanning tree algorithm.
- Tests for all algorithms and data structures.
- Project structure.
- CamelCase names.
__main__
functions from all modules.
- Code formatting.
- Binary heap bug.
- Preorder traversal bug.
- Not all exceptions are handled properly.