Commit Graph

2287 Commits

Author SHA1 Message Date
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
mateuszz0000
3d0680eddf
Added Burkes dithering algorithm. (#1916)
* Added Burkes dithering algorithm

* Added unit tests for burkes algorithm

* Fix burkes algorithm

* Added some additional information

* Fixed CI tests

* Update digital_image_processing/dithering/burkes.py

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

* Update digital_image_processing/dithering/burkes.py

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

* Update digital_image_processing/dithering/burkes.py

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

* Propogate the += and add a doctest

* Fix doctest

* @staticmethod --> @ classmethod to ease testing

* def test_burkes(file_path):

* Fix for mypy checks

* Fix variable order in get_greyscale

* Fix get_greyscale method

* Fix get_greyscale method

* 3.753

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-30 11:54:20 +02:00
LethargicLeprechaun
fbc038d532
Added A1Z26 Cipher (#1914)
* A1Z26 Cipher

* A1Z26 Cipher

* Added type hints

* Added Doctests

* removed tabs, spaces instead

* corrected doctest

* corrected doctest

* info URLs added

* Condensed decode to one line

* Condensed encode function to a single line

* Nice one!

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-30 00:23:51 +02:00
Christian Clauss
8cb957f893
Blacken one_dimensional.py (#1911)
* Blacken one_dimensional.py

* updating DIRECTORY.md

* Travis CI: Upgrade to Ubuntu 20.04 LTS Focal

Ubuntu 20.04 LTS (Focal Fossa) https://releases.ubuntu.com/focal

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-27 18:40:46 +02:00
8Dion8
0ef9dd3977
Create one_dimensional.py (#1905)
* Create one_dimensional.py

* Update cellular_automata/one_dimensional.py

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

* Update cellular_automata/one_dimensional.py

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

* Update one_dimensional.py

Moved import to the top so that the type Image gets recognized

* Update one_dimensional.py

* Update cellular_automata/one_dimensional.py

* Update cellular_automata/one_dimensional.py

* Update one_dimensional.py

* Update one_dimensional.py

* Update one_dimensional.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-27 18:07:31 +02:00
mateuszz0000
5933cd4d83
Added sepia tone (#1877)
* Add sepia tone

* Add unit test

* technic --> technique

* Update digital_image_processing/sepia.py

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

* Update digital_image_processing/sepia.py

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

* Fixed errors after commit changes

* Fixed errors

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-26 11:59:11 +02:00
Sanders Lin
e5dd2b1eb7
Fix typo in Project Euler sol1.py (#1875) 2020-04-25 23:27:01 +02:00
Prince Gangurde
58271c5851
Update linear_search.py (#1906) 2020-04-24 12:34:18 +02:00
Christian Clauss
b560b76002
Add cellular_automata directory (#1902)
Related to https://github.com/TheAlgorithms/Python/issues/1613#issuecomment-618175224 @8Dion8 Your review please.  Once this land, this directory would be a great place for you to add your work.
2020-04-23 11:57:32 +02:00
Arkadip Bhattacharya
098be3594b
fix: space count in strings/word_occurrence.py (#1896)
* fix: space count in strings/word_occurrence.py

* Update strings/word_occurrence.py

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

* Update strings/word_occurrence.py

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

* Update strings/word_occurrence.py

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

* Update word_occurrence.py

Seems like, there is no need o `occurrence.pop('', None)`

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-21 17:28:54 +02:00
Christian Clauss
24b2aecef3
Create Python/bit_manipulation/README.md (#1897)
* Create Python/bit_manipulation/README.md

To open up a new area of algorithms...

@Shrutikabansal I hope that you will contribute some of your work here.

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-20 20:19:27 +02:00
Muhammad Umer Farooq
4b78c6952d
Create is_palindrome.py (#1754)
* Create is_palindrome.py

* Update is_palindrome.py

* Update is_palindrome.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-19 22:05:36 +05:30
Sanders Lin
c92a520956
Update breadth_first_search.py (#1869) 2020-04-19 19:26:52 +05:30
Sanders Lin
7aaf79cc23
Initialize set with source in DFS (#1872)
* Update dfs.py

* Add type hints, rearrange doc-strings and comments

* fixup! Format Python code with psf/black push

* dfs -> depth_first_search

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

* dfs -> depth_first_search

* Add doctest for DFS

* fixup! Format Python code with psf/black push

* Rename dfs.py to depth_first_search_dictionary.py

* updating DIRECTORY.md

* Rename depth_first_search_dictionary.py to depth_first_search_dfs.py

* updating DIRECTORY.md

* Rename depth_first_search.py to depth_first_search_2.py

* updating DIRECTORY.md

* Rename depth_first_search_dfs.py to depth_first_search.py

* updating DIRECTORY.md

Co-authored-by: John Law <johnlaw.po@gmail.com>
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-17 20:05:29 +02:00
Sanders Lin
1c9d4a3929
Update abbreviation.py (#1887) 2020-04-17 20:04:30 +02:00
Sanders Lin
0feed0bfb8
Update CONTRIBUTING.md (#1886) 2020-04-17 20:03:36 +02:00
Prince Gangurde
8c01da20d6
Update random_forest_regressor.py (#1880) 2020-04-17 12:43:50 +02:00
Christian Clauss
d48661e35d
CONTRIBUTING.md: What is an Algorithm? (#1885)
* CONTRIBUTING.md: What is an Algorithm?

We are seeing too many _how-to examples_ for using existing Python packages so we should define what we want algorithm contributions to be.

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-17 12:42:00 +02:00
Prince Gangurde
b64c4af296
Create gaussian_naive_bayes.py (#1861)
* Create Gaussian_Naive_Bayes.py

Added Gaussian Naive Bayes algorithm in the module machine learning

* Rename Gaussian_Naive_Bayes.py to gaussian_naive_bayes.py

* requirements.txt: pip install xgboost

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-17 09:38:44 +08:00
Sanders Lin
d2e8e6215e
Update g_topological_sort.py (#1873) 2020-04-16 12:34:14 +02:00
Christian Clauss
f6ee518ee1
Rename math/add.py to maths/add.py (#1857)
* Rename math/add.py to maths/add.py

* fixup! Format Python code with psf/black push

* Fix sum to add

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-04-13 07:50:46 +02:00
markaster
2fc3f2e4a0
Update year in LICENSE.md (#1848) 2020-04-13 02:17:29 +02:00
Prince Gangurde
7ffdef2636
Fix some typos in random forest classifier (#1858) 2020-04-13 02:15:48 +02:00
Christian Clauss
7ebe2b9593
Test the exception conditions (#1853)
* Text exception conditions

These are ValueErrors, not AttributeErrors.

* fixup! Format Python code with psf/black push

* Update perceptron.py

* Update perceptron.py

* Update perceptron.py

* Revert the test

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-13 02:10:21 +02:00
Shrutika Bansal
3735e74296
added add algorithm (#1856)
* added add algorithm

* Update and rename check/add.py to math/add.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-12 19:53:28 +02:00
Christian Clauss
8bf380ce7d
README.md: sumab() --> sum_ab() for consistancy (#1855)
* README.md: sumab() --> sum_ab() for consistancy  

consistency

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-12 17:18:30 +02:00
Sajied Shah Yousuf
c775baf55f
Added new Algorithm to find middle element of Linked List (#1822)
* Added new Algorithm to find middle element of Linked List

* Rename MiddleElementOfLinkedList.py to middle_element_of_linked_list.py

* changed "middle_element_of_linked_list.py" algorithm for taking input

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Update middle_element_of_linked_list.py

* Whack the trailing whitespace

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-12 16:45:07 +02:00
Anup Kumar Panwar
728deeae82
Update FUNDING.yml 2020-04-10 14:58:03 +05:30
Christian Clauss
4103c9fde4
Update FUNDING.yml (#1829)
* Update FUNDING.yml

* fixup! Format Python code with psf/black push

* Update FUNDING.yml

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Anup Kumar Panwar <1anuppanwar@gmail.com>
2020-04-10 14:55:58 +05:30
Christian Clauss
8f2c9932e0
CONTRIBUTING.md: Fix comments about the black formatter (#1841)
* CONTRIBUTING.md: Fix comments about the black formatter

Fixes #1840

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md
2020-04-08 12:27:11 +02:00
hackercyclops12
1b65309dca
Update README.md (#1842) 2020-04-07 23:56:21 +02:00
Joan Martin Miralles
a38e143cf8
Binary search tree using recursion (#1839)
* Binary search tree using recursion

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-07 18:09:05 +02:00
Joaquin Cabezas
c1a57e0353
Fix typo "panagram" -> "pangram" (#1836) 2020-04-07 14:08:11 +02:00
Brian Larsen
e5f7fbcc9e
Change gitpod configuration for python3. (#1827) 2020-04-07 12:20:08 +02:00
Christian Clauss
3d129a4964
Create Python/quantum/README.md (#1834)
* Create Python/quantum/README.md

Started at #1831

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-07 11:58:23 +02:00
Prince Gangurde
f35484baf6
Update greedy.py (#1832) 2020-04-07 01:00:10 +02:00
Prince Gangurde
6043a44ffb
Update basic_binary_tree.py (#1833)
fixed some grammar mistakes
2020-04-07 00:59:32 +02:00
farnswj1
20c2db0de4
Update reverse_words.py (#1825)
The following update results in less lines of code and faster performance while preserving functionality.
2020-04-04 07:01:37 +02:00
Nolan Emirot
9b376a5bfb
Typo in comment rabin_karp.py (#1820)
* Update rabin_karp.py

fix: typo

* Update rabin_karp.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-03-29 10:19:19 +02:00
Christian Clauss
f17e9822b0
psf/black changes to next_greater_element.py (#1817)
* psf/black changes to next_greater_element.py

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-03-28 07:24:59 +01:00
Vaibhav Singh
96df906e7a
All suggeted changes within additional time limit tests (#1815)
* With all suggested changes  

possibly covered all the recommended guidelines

* Updated with both slow and faster algorithms

possibally covered all the recomendations

* removed the time comparision part!

* Update data_structures/stacks/next_greater_element.py

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

* Update data_structures/stacks/next_greater_element.py

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

* Update data_structures/stacks/next_greater_element.py

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

* Update data_structures/stacks/next_greater_element.py

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

* Add benchmark using timeit

https://docs.python.org/3/library/timeit.html

The performance delta between these two implementation is quite small...
```
next_greatest_element_slow(): 1.843442126
     next_greatest_element(): 1.828941414
```

* Optimize slow() to create fast() - Three algorithms in the race

Three algorithms in the race

* Use a bigger test array with floats, negatives, zero

* Setup import next_greatest_element_fast

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-03-27 08:16:07 +01:00
wind-Lv
ac664df6a0
'allocation_content_length' (#1808)
* 'allocation_content_length'

* 'allocation_number'

* Delete allocation_content_length.py

* Update allocation_number.py

* Update allocation_number.py

* number_of_bytes and partitions

* Update allocation_number.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-03-20 15:24:05 +01:00
KDH
45524dd6d3
Fix rehashing function will not call insert_data function (#1803)
* Fix rehashing function will not call insert_data function

* Fix typo

* Update loop syntax instead of allocating a list

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

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-03-16 11:19:13 +01:00
Christian Clauss
ab3400bfad
Travis CI: Fix Travis linter errors (#1802)
* Travis CI: Fix Travis linter errors

* fixup! Format Python code with psf/black push

* Update .travis.yml

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-03-14 23:55:13 +01:00
cschuerc
1bc84e1fa0
Add Monte Carlo estimation of PI (#1712)
* Add Monte Carlo estimation of PI

* Add type annotations for Monte Carlo estimation of PI

* Compare the PI estimate to PI from the math lib

* accuracy -> error

* Update pi_monte_carlo_estimation.py

Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-03-14 07:51:30 +01:00
Christian Clauss
d547d0347b
directory_writer: actions/checkout@v1 # Use v1, NOT v2 (#1799)
* directory_writer: actions/checkout@v1 # Use v1, NOT v2 (#1796

* updating DIRECTORY.md
2020-03-14 07:33:14 +01:00
John Law
2da98db4a7
Effective directory writer (#1800)
* updating DIRECTORY.md

* Update directory_writer.yml

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-03-14 06:37:44 +01:00
KDH
cb5f8c6e4e
Fix typo (#1797)
colision => collision
2020-03-13 13:46:52 +01:00