Minimal and clean example implementations of data structures and algorithms in Python 3.
Thanks for your interest in contributing! There are many ways to contribute to this project.Get started here
For running all tests write down:
$ Python 3 -m unittest discover tests
For running some specific tests you can do this as following (Ex: sort):
$ Python 3 -m unittest tests.test_sort
For running all tests write down:
$ Python 3 -m pytest tests
If you want to use the API algorithms in your code, it is as simple as:
$ pip3 install algorithms
You can test by creating a Python file: (Ex: usemerge_sort
insort
)
fromalgorithms.sortimportmerge_sort
if__name__=="__main__":
my_list=[1,8,3,5,6]
my_list=merge_sort(my_list)
print(my_list)
If you want to uninstall algorithms, it is as simple as:
$ pip3 uninstall -y algorithms
- arrays
- greedy
- automata
- backtrack
- bfs
- bit
- compression
- dfs
- distribution
- dp
- buy_sell_stock
- climbing_stairs
- coin_change
- combination_sum
- egg_drop
- house_robber
- int_divide
- job_scheduling
- knapsack
- longest_increasing
- matrix_chain_order
- max_product_subarray
- max_subarray
- min_cost_path
- num_decodings
- regex_matching
- rod_cut
- word_break
- fibonacci
- hosoya triangle
- K-Factor_strings
- planting_trees
- graph
- heap
- linkedlist
- map
- maths
- base_conversion
- chinese_remainder_theorem
- combination
- cosine_similarity
- decimal_to_binary_ip
- diffie_hellman_key_exchange
- euler_totient
- extended_gcd
- factorial
- find_order
- find_primitive_root
- gcd/lcm
- generate_strobogrammtic
- hailstone
- is_strobogrammatic
- krishnamurthy_number
- magic_number
- modular_exponential
- modular_inverse
- next_bigger
- next_perfect_square
- nth_digit
- num_perfect_squares
- polynomial
- power
- prime_check
- primes_sieve_of_eratosthenes
- pythagoras
- rabin_miller
- recursive_binomial_coefficient
- rsa
- sqrt_precision_factor
- summing_digits
- symmetry_group_cycle_index
- matrix
- queues
- search
- set
- sort
- stack
- streaming
- strings
- fizzbuzz
- delete_reoccurring
- strip_url_params
- validate_coordinates
- domain_extractor
- merge_string_checker
- add_binary
- breaking_bad
- decode_string
- encode_decode
- group_anagrams
- int_to_roman
- is_palindrome
- license_number
- make_sentence
- multiply_strings
- one_edit_distance
- rabin_karp
- reverse_string
- reverse_vowel
- reverse_words
- roman_to_int
- word_squares
- unique_morse
- judge_circle
- strong_password
- caesar_cipher
- check_pangram
- contain_string
- count_binary_substring
- repeat_string
- min_distance
- longest_common_prefix
- rotate
- first_unique_char
- repeat_substring
- longest_palindromic_substring
- knuth_morris_pratt
- panagram
- tree
- bst
- fenwick_tree
- red_black_tree
- segment_tree
- traversal
- trie
- b_tree
- binary_tree_paths
- bin_tree_to_list
- construct_tree_preorder_postorder
- deepest_left
- invert_tree
- is_balanced
- is_subtree
- is_symmetric
- longest_consecutive
- lowest_common_ancestor
- max_height
- max_path_sum
- min_height
- path_sum
- path_sum2
- pretty_print
- same_tree
- tree
- unix
- unionfind
Thanks toall the contributors who helped in building the repo.