Commit Graph

1934 Commits

Author SHA1 Message Date
Erwin Lejeune
1f2d607e56
Graphs : Bidirectional A* (#2015)
* implement bidirectional astar

* add type hints

* add wikipedia url

* format with black

* changes from review
2020-05-20 12:20:22 +05:30
mateuszz0000
965d02ad41
Update atbash cipher (doc, doctest, performance) (#2017)
* Update atbash

* Add benchmark() to quantify the performance improvement

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-20 08:23:17 +02:00
Sanders Lin
777ddca2e9
Update fast_fibonacci.py (#1889)
* Update fast_fibonacci.py

* Update fast_fibonacci.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-19 19:31:52 +02:00
Christian Clauss
0e6e5056b3
singly_linked_list.py: psf/black (#2008)
* singly_linked_list.py: psf/black

* updating DIRECTORY.md

* Update singly_linked_list.py

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-19 13:54:25 +02:00
mateuszz0000
2431001658
Easter date gauss algorithm (#2010)
* Added gauss easter algorithm

* Fixes in easter algorithm

* Commit suggestions
2020-05-19 13:44:45 +02:00
Jie Han
c906ba82f3
refactor: move import pytest line of blockchain algs under "main" section. (#2012)
* change doctest line

import doctest is not relevant with algorithms. move it under main section.

* from doctest import testmod

* refactor: move doctest under "main" section

* Update diophantine_equation.py

* Update modular_division.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-19 12:56:16 +02:00
Christian Clauss
1c62bd10c1
Precision must be a nonnegative integer (#2013)
* Precision must be a nonnegative integer

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-19 15:46:20 +05:30
Adityanagraj
e6fdcc90fd
consists of area of various geometrical shapes (#2002)
* consists of area of various geometrical shapes

In this program it consists of various area calculation of different geometrical shapes such as (square,rectangle) and many other shapes.

* print(f'Rectangle: {area_rectangle(10, 20)=}')

* Update area.py

* Areas of various geometric shapes:

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-18 23:06:19 +02:00
Kenneth P
77f3888b71
Pi digit extraction algorithm (#1996)
* added pi digit extraction formula

* updating DIRECTORY.md

* fixed typo in a comment

* updated bbp_formula.py

* Update maths/bbp_formula.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update maths/bbp_formula.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update bbp_formula.py

* Update and rename bbp_formula.py to bailey_borwein_plouffe.py

* updating DIRECTORY.md

* calculate

* "".join(bailey_borwein_plouffe(i) for i in range(1, 12))

* Update bailey_borwein_plouffe.py

* Update bailey_borwein_plouffe.py

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-18 22:54:08 +02:00
Jie Han
7a8696cd6d
change doctest line (#2007)
* change doctest line

import doctest is not relevant with algorithms. move it under main section.

* from doctest import testmod

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-18 21:44:27 +02:00
Akash
f9e0dd94d6
added __len__ function (#1812)
* added __len__ function

Added a function to count number of nodes in linked list

* Updated __len__ method

used snake_case instead of camel case

* Add tests to __len__()

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-18 18:10:55 +02:00
Christian Clauss
38d2e98665
hill_cipher.py: gcd() -> greatest_common_divisor() (#1997)
* hill_cipher.py: gcd() -> greatest_common_divisor()

* fixup! Format Python code with psf/black push

* import string

* updating DIRECTORY.md

* Change matrix to array

Add more tests

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-05-18 13:05:51 +02:00
Bharath kumar Reddy Kotha
aa120cea12
Add tests and type hints to hill cipher (#1991)
* Added tests and type hints to hill cipher

* Remove extra >>>

* import doctest

Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-05-18 09:03:20 +02:00
mateuszz0000
bc8e8f03fd
Added strand sort (#1982)
* Added strand sort

* Review changes

* Remove boilerplate code

* Fixed flake error: E252

* Added missing return type hint
2020-05-17 22:48:39 +02:00
Christian Clauss
565060aa99
actions/setup-python@v2 (#1986)
* actions/setup-python@v2

* fixup! Format Python code with psf/black push

* Update autoblack.yml

* updating DIRECTORY.md

* Update codespell.yml

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-16 08:49:56 +02:00
Kenneth P
a29a2a3a06
Added file aliquot_sum.py (#1985)
* Added file aliquot_sum.py containing a function to find theo

* Added parameter type info to aliquot_sum.py

* Update maths/aliquot_sum.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update maths/aliquot_sum.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Updated code to raise ValueErrors if input is bad

* Fixed logical operators

* Removed unnecessary import

* Updated aliquot_sum.py

* fixed formatting

* fixed documentation

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-15 08:06:51 +02:00
Steven Qu
c8fbdee229
improved prime number generator to check only up to sqrt(n) instead of n (#1984)
* improved prime number generator to check only up to sqrt(n) instead of n

* added old version as slow_primes() and named new, faster version primes()

* fixed docstring in slow_primes

* Add a timeit benchmark

* Update prime_numbers.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-15 00:33:50 +02:00
Himanshu Airan
48bb14d4b2
Update linear_search.py (#1974)
* Update linear_search.py

Comment modified in line 17 as Sorting not required in Linear Search

* Update linear_search.py

Comment modified in line 17
2020-05-14 16:52:43 +02:00
Christian Clauss
69171a9ac3
The new version of flake8 is linting f-strings (#1976)
* The new version of flake8 is linting f-strings

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-13 20:03:28 +02:00
Aman Gupta
ba8b156fdc
Iterative merge sort implementation (#1972)
* Added Iterative merge sort

* Added iterative merge sorts

* Update changes

* Add the ability to sort strings

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-11 16:40:02 +02:00
halilylm
1151d8b157
Add type hints to max_heap.py (#1960)
* Max heap implementation

* Update max_heap.py

* Update max_heap.py

* Update max_heap.py

* __len__ method added

* Update max_heap.py

Co-authored-by: halilpython <65048618+halilpython@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-11 12:23:39 +02:00
Christian Clauss
a7cd633bb6
Fix astar (#1966)
* Fix astar

Single character variable names are old school.

* fixup! Format Python code with psf/black push

* Tuple

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-10 20:49:40 +05:30
Christian Clauss
3d9bb051a8
Travis CI: Strict flake8 (#1962)
* Travis CI: Strict flake8

Turn the screws all the way down.

* updating DIRECTORY.md

* Switch from flake8 --select to --ignore

* Quotes

* IGNORE=E123,E203,E265,E266,E302,E401,E402,E712,E731,E741,E743,F811,F841,W291,W293,W503

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-10 08:06:42 +02:00
Jeffin Francis
77c3e5b74b
Added A* algorithm (#1913)
* a* algorithm

* changes after build error

* intent changes

* fix after review

* ImportMissmatchError

* Build failed fix

* doctest changes

* doctest changes
2020-05-10 00:37:36 +05:30
Raj-Parekh24
eef6393935
Kadanes_algorithm (#1959)
* Add files via upload

* Update Kadane's_algorithm.py

* Update and rename Kadane's_algorithm.py to kadanes_algorithm.py

* Update kadanes_algorithm.py

* Update kadanes_algorithm.py

* Update kadanes_algorithm.py

* Update kadanes_algorithm.py

* Update kadanes_algorithm.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-09 21:00:59 +02:00
Christian Clauss
8b55a143fa
Travis CI: lint for useless backslashes (#1961)
* Travis CI: lint for useless backslashes

* updating DIRECTORY.md

* flake8  --max-complexity=25

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-09 13:24:25 +02:00
Maxim R
369562a1e8
Upgrades to caesar_cipher.py (#1958)
* Added more flexibility to functions, decreased amount of repeating code

* Added docstrings

* Updated input functions

* Added doctests

* removed test piece of code

* black .

* Updated caesar cipher standard alphabet to fit python 3.8

* Update and rename sleepsort.py to sleep_sort.py

* Or 4

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-08 07:44:07 +02:00
mateuszz0000
c18c677a38
Added Nearest neighbour algorithm (#1934) 2020-05-07 23:47:28 +02:00
siva1098
7469fb6edd
Add graphs/frequent_pattern_graph_miner.py (#1866)
* Add files via upload

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update graphs/frequent_pattern_graph_miner.py

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Update frequent_pattern_graph_miner.py

* Whitespace changes

* Format with psf/black

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-07 23:30:24 +02:00
Arvind Krishna
9e5f365fed
Add sleep-sort (#1867)
* added sleepsort

Adding sleepsort

* Add doctest and typing for sleepsort

* Use self-descriptive variable name

* Update sleepsort.py

* Update sorts/sleepsort.py

Co-authored-by: John Law <johnlaw.po@gmail.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-07 21:44:34 +02:00
pharshil1902
a52dd66ac6
Added Shortest Job First Algorithm (#1957)
* Added Shortest Job First Algorithm

It is in IPYNB format but the dataframes are really looking good.
Please, take a look.

* Delete Shortest_Job_First_Algorithm.ipynb

* Added Shortest Job First Algorithm

* Update Shortest_Job_First Algorithm.py

* Update Shortest_Job_First Algorithm.py

* Update Shortest_Job_first Algorithm

* Added Shortest_Job_First Algorithm

* Added Shortest Job First Algorithm

* Update shortest_job_first_algorithm.py

* Format code with psf/black

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-07 19:27:44 +02:00
Jeffin Francis
8a8527f1bd
Added Lstm example for stock predection (#1908)
* Added Lstm example for stock predection

* Changes after review

* changes after build failed

* Add Kiera’s to requirements.txt

* requirements.txt: Add keras and tensorflow

* psf/black

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-07 08:53:44 +02:00
Maxim R
4acc28ba55
Added new algorithm: cracking caesar cipher with the chi-squared test (#1950)
* added decrypt_caesar_with_chi_squared.py and ran all checks

* Updated default parameters

Removed mistake with mutable default arguments

Co-authored-by: Christian Clauss <cclauss@me.com>

* Updated handling for optional arguments

Co-authored-by: Christian Clauss <cclauss@me.com>

* Changed return statement to tuple

Made function return a tuple instead of a list

* Added more doctests

* Fixed spelling mistakes

* black . - reformatted decrypt_caesar_with_chi_squared.py

* Updated if statements to fit the updated code

* Minimized amount of lines in the code.

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-06 19:42:18 +02:00
Vipul Rai
3d4ccc383a
change method name from front to get_front (#1943)
Co-authored-by: “Vipul <“vipulrai8891@gmail.com”>
2020-05-06 11:19:44 +05:30
Christian Clauss
08c8bb5ad5
Deal with maps (#1945)
* Deal with maps

Try with the search term "pizza" to see why this was done in #1932

* fixup! Format Python code with psf/black push

* Update armstrong_numbers.py

* updating DIRECTORY.md

* Update crawl_google_results.py

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-06 03:32:40 +02:00
Sanders Lin
1e84aabaea
Create sol2.py (#1876)
* Create sol2.py

* updating DIRECTORY.md

* Update DIRECTORY.md

* updating DIRECTORY.md

* Update sol2.py

* Update DIRECTORY.md

* updating DIRECTORY.md

* Improve docstrings

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: vinayak <itssvinayak@gmail.com>
Co-authored-by: John Law <johnlaw@linux.com>
2020-05-05 17:27:18 +02:00
Anup Kumar Panwar
540023ec31
Delete FUNDING.yml 2020-05-04 11:18:41 +05:30
Christian Clauss
d1b25760bc
Fix psf/black issues than fail the build (#1935)
* Fix psf/black issues than fail the build

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-03 23:58:44 +02:00
Alok Shukla
9b2d65bac1
Solution for Euler Problem 26 (#1939)
* Solution for Euler Problem 26

* Update project_euler/problem_26/sol1.py

typo error fix.

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update project_euler/problem_26/sol1.py

typo error fix

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update project_euler/problem_26/sol1.py

ok to remove, this comes from Pycharm automatically when docstring is added.

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update project_euler/problem_26/sol1.py

ok to remove.

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update project_euler/problem_26/sol1.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update project_euler/problem_26/sol1.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update project_euler/problem_26/sol1.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* now_divide = now_divide * 10 % divide_by_number

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-03 22:48:16 +02:00
Akash
f80ffe1f54
added method for checking armstrong number (#1936)
* added method for checking armstrong number

* Update comment

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-03 19:56:33 +02:00
Akash
b6fcee3114
Check if a item exist in stack or not (#1931)
* Check if a item exist in stack or not

* implemented __contains__ method in stack

* made changes in __contains__
2020-05-03 16:15:31 +02:00
lanzhiwang
853741e518
enhanced segment tree implementation and more pythonic (#1715)
* enhanced segment tree implementation and more pythonic

enhanced segment tree implementation and more pythonic

* add doctests for segment tree

* add type annotations

* unified processing sum min max segment tre

* delete source encoding in segment tree

* use a generator function instead of returning

* add doctests for methods

* add doctests for methods

* add doctests

* fix doctest

* fix doctest

* fix doctest

* fix function parameter and fix determine conditions
2020-05-02 21:44:29 +02:00
QuantumNovice
9bb57fbbfe
support_vector_machines.py increase error tolerance to suppress convergence warnings (#1929)
* Update support_vector_machines.py

* Update support_vector_machines.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-02 21:19:45 +02:00
Saba Pochkhua
a859934105
Hamiltonian Cycle (#1930)
* add skeleton code

* add doctests

* add tests for util function + implement wrapper

* full implementation

* add ability to add starting verex for algorithm

* add static type checking

* add doc tests to validation method

* bug fix: doctests expected failing

* Update hamiltonian_cycle.py

* Update hamiltonian_cycle.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-02 21:13:56 +02:00
lkdmttg7
d62cc35268
Update stale comment (#1924)
* Update close comment

* Update stale.yml

* Multiline strings in yaml files

https://yaml-multiline.info/

Co-authored-by: John Law <johnlaw.po@gmail.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-02 13:04:25 +02:00
Christian Clauss
6acd7fb5ce
Wrap lines that go beyond GitHub Editor (#1925)
* Wrap lines that go beyond GiHub Editor

* flake8 --count --select=E501 --max-line-length=127

* updating DIRECTORY.md

* Update strassen_matrix_multiplication.py

* fixup! Format Python code with psf/black push

* Update decision_tree.py

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-01 23:36:35 +02:00
QuantumNovice
bcaa88b26c
Changed the deprecated np.matrix to np.ndarray (#1923) 2020-05-01 17:42:41 +02:00
Sanders Lin
308505f18f
Add shortest path by BFS (#1870)
* Create breadth_first_search_shortest_path.py

* updating DIRECTORY.md

* Reduce side effect of `shortest_path`

For the sake of future testing and documentation -

* fixup! Format Python code with psf/black push

* Fix typo `separately`

* Change to get() from dictionary

Co-Authored-By: Christian Clauss <cclauss@me.com>

* Move graph to the top

* fixup! Format Python code with psf/black push

* Add doctest for shortest path

* Add doctest for BFS

* fixup! Format Python code with psf/black push

* Add typings for breadth_first_search_shortest_path

* fixup! Format Python code with psf/black push

* Remove assert from doctests

* Add blank line to doctest

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: John Law <johnlaw@linux.com>
2020-05-01 07:24:32 +02:00
Saba Pochkhua
b01e5b78a3
Graph coloring (#1921)
* add skeleton code

* add doctests

* add mainc function pseudo code and tests (ToDo: write Implementation)

* typo fixes

* implement algorithm

* add type checking

* add wikipedia link

* typo fix

* update range syntax

Co-authored-by: Christian Clauss <cclauss@me.com>

* change indexed iteration checking to any()

Co-authored-by: Christian Clauss <cclauss@me.com>

* fix: swap import and documentation sections

* fix: change return none to return empty list

* remove unnecessary import (Union)

* change: remove returning boolean indicating problem was solved or not

* remove unnecessary import (Tuple)

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-30 23:23:52 +02:00
Christian Clauss
1ad78b2663
Fix invalid escape sequence in binary_search_tree.py (#1920)
* Fix invalid escape sequence in binary_search_tree.py

data_structures/binary_tree/binary_search_tree.py:156
  /home/travis/build/TheAlgorithms/Python/data_structures/binary_tree/binary_search_tree.py:156: DeprecationWarning: invalid escape sequence \

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-01 02:17:11 +05:30