All Algorithms implemented in Python the-algorithms.com/
Go to file
Lucia Harcekova 90686e39b9
Add LZ77 compression algorithm (#8059)
* - add "lz77_compressor" class with compress and decompress methods using LZ77 compression algorithm

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* - use "list" instead "List", formatting

* - fix spelling

* - add Python type hints

* - add 'Token' class to represent triplet (offset, length, indicator)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* - add test, hange type rom List to list

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* - remove extra import

* - remove extra types in comments

* - better test

* - edit comments

* - add return types

* - add tests for __str__ and __repr__

* Update lz77.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2022-12-28 18:34:35 +01:00
.github refactor: Move pascals triange to maths/ (#7932) 2022-11-01 20:25:39 +01:00
arithmetic_analysis refactor: Indent ... for visual purposes (#7744) 2022-10-27 19:42:30 +02:00
audio_filters Add autoclave cipher (#8029) 2022-12-18 23:26:39 +01:00
backtracking Add backtrack word search in matrix (#8005) 2022-11-29 19:28:47 +01:00
bit_manipulation add numbers different signs algorithm. (#8008) 2022-12-15 17:11:32 +13:00
blockchain Additional intro blockchain doc (#7974) 2022-11-15 14:37:59 +01:00
boolean_algebra clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
cellular_automata clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
ciphers Add autoclave cipher (#8029) 2022-12-18 23:26:39 +01:00
compression Add LZ77 compression algorithm (#8059) 2022-12-28 18:34:35 +01:00
computer_vision Raise error not string (#7945) 2022-11-06 15:54:44 +01:00
conversions fix: mypy 0.991 issues (#7988) 2022-11-15 18:29:14 +01:00
data_structures Upgrade to flake8 v6 (#8007) 2022-11-29 16:56:41 +01:00
digital_image_processing clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
divide_and_conquer Remove some print statements within algorithmic functions (#7499) 2022-10-22 13:33:51 +02:00
dynamic_programming clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
electronics Adding inductive reactance calculation (#6625) 2022-10-31 12:31:15 +01:00
file_transfer [mypy] fix small folders (#4292) 2021-03-23 16:51:50 +01:00
financial Calculate GST Amount (#7694) 2022-10-26 23:15:02 +02:00
fractals fix: no implicit optional (#7984) 2022-11-15 14:55:14 +01:00
fuzzy_logic Misc fixes across multiple algorithms (#6912) 2022-10-16 10:55:38 +05:30
genetic_algorithm Fix yesqa hook (#7843) 2022-10-29 15:07:02 +02:00
geodesy refactor: Move constants outside of variable scope (#7262) 2022-10-16 15:03:29 +05:30
graphics The black formatter is no longer beta (#5960) 2022-01-30 20:29:54 +01:00
graphs clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
greedy_methods Corrected the directory of Fractional Knapsack algorithm (#7086) 2022-10-16 22:41:28 +02:00
hashes Added Builtin Voltage (#7850) 2022-10-30 12:52:20 +01:00
knapsack Create recursive_approach_knapsack.py (#7587) 2022-10-29 15:28:12 +02:00
linear_algebra clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
machine_learning Add autoclave cipher (#8029) 2022-12-18 23:26:39 +01:00
maths Add algorithm to convert decimal number to its simplest fraction form (#8001) 2022-12-11 08:04:04 +01:00
matrix fix: mypy 0.991 issues (#7988) 2022-11-15 18:29:14 +01:00
networking_flow clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
neural_network Add simple neural network (#6452) 2022-10-30 08:05:44 +01:00
other clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
physics Added a Hubble Parameter calculator file (#7921) 2022-10-31 23:04:42 +01:00
project_euler Upgrade to flake8 v6 (#8007) 2022-11-29 16:56:41 +01:00
quantum clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
scheduling Misc fixes across multiple algorithms (#6912) 2022-10-16 10:55:38 +05:30
scripts pre-commit autoupdate: pyupgrade v2.34.0 -> v2.37.0 (#6245) 2022-07-11 10:19:52 +02:00
searches Remove file-level flake8 suppression (#7844) 2022-10-29 22:45:21 +02:00
sorts Reduce the complexity of sorts/merge_insertion_sort.py (#7954) 2022-12-24 15:57:28 +01:00
strings clean of unnecessary checks, imports, calls (#7993) 2022-11-21 00:00:27 +13:00
web_programming Create convert_number_to_words.py (#6788) 2022-10-31 18:04:42 +01:00
.flake8 [pre-commit.ci] pre-commit autoupdate (#8047) 2022-12-26 22:02:50 +01:00
.gitattributes Create .gitattributes for Cross OS compatibility (#3410) 2020-10-17 07:25:25 +02:00
.gitignore chore: update .gitignore (#6263) 2022-07-23 07:56:59 +05:30
.gitpod.yml Change gitpod configuration for python3. (#1827) 2020-04-07 12:20:08 +02:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate (#8047) 2022-12-26 22:02:50 +01:00
CONTRIBUTING.md Test on Python 3.11 (#6591) 2022-10-31 14:50:03 +01:00
DIRECTORY.md [pre-commit.ci] pre-commit autoupdate (#8037) 2022-12-19 23:04:34 +01:00
LICENSE.md LICENSE: Year change (#5920) 2022-03-16 23:40:48 +08:00
pyproject.toml Add running doctest to pytest default (#7840) 2022-10-29 14:27:47 +02:00
README.md refined readme.md (#7081) 2022-10-13 19:09:48 +02:00
requirements.txt BB84 QKD algorithm (#7898) 2022-11-08 18:24:21 +01:00

The Algorithms - Python

Gitpod Ready-to-Code Contributions Welcome Discord chat Gitter chat
GitHub Workflow Status pre-commit code style: black

All algorithms implemented in Python - for education

Implementations are for learning purposes only. They may be less efficient than the implementations in the Python standard library. Use them at your discretion.

Getting Started

Read through our Contribution Guidelines before you contribute.

Community Channels

We are on Discord and Gitter! Community channels are a great way for you to ask questions and get help. Please join us!

List of Algorithms

See our directory for easier navigation and a better overview of the project.