From 529dc79fc3f5f8ff22094c60bc2833f24d03ea0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Lars=C3=A9n?= Date: Fri, 22 Feb 2019 21:15:53 +0100 Subject: [PATCH 1/8] Move files and folders into unified package structure --- {Graphs => thealgorithms/Graphs}/BFS.py | 0 {Graphs => thealgorithms/Graphs}/DFS.py | 0 .../Graphs}/__init__.py | 0 {Maths => thealgorithms/Maths}/3n+1.py | 0 {Maths => thealgorithms/Maths}/FindMax.py | 0 {Maths => thealgorithms/Maths}/FindMin.py | 0 .../Maths}/__init__.py | 0 {Maths => thealgorithms/Maths}/abs.py | 0 {Maths => thealgorithms/Maths}/absMax.py | 0 {Maths => thealgorithms/Maths}/absMin.py | 0 {Maths => thealgorithms/Maths}/average.py | 0 {Maths => thealgorithms/Maths}/find_hcf.py | 0 {Maths => thealgorithms/Maths}/find_lcm.py | 0 .../queue => thealgorithms}/__init__.py | 0 .../compression_analysis/PSNR-example-base.png | Bin .../compression_analysis/PSNR-example-comp-10.jpg | Bin .../analysis/compression_analysis}/__init__.py | 0 .../compression_analysis/compressed_image.png | Bin .../compression_analysis/example_image.jpg | Bin .../example_wikipedia_image.jpg | Bin .../compression_analysis/original_image.png | Bin .../analysis}/compression_analysis/psnr.py | 0 .../arithmetic_analysis}/__init__.py | 0 .../arithmetic_analysis}/bisection.py | 0 .../arithmetic_analysis}/intersection.py | 0 .../arithmetic_analysis}/lu_decomposition.py | 0 .../arithmetic_analysis}/newton_method.py | 0 .../arithmetic_analysis}/newton_raphson_method.py | 0 .../binary_tree}/__init__.py | 0 .../binary_tree}/basic_binary_tree.py | 0 thealgorithms/boolean_algebra/__init__.py | 0 .../boolean_algebra}/quine_mc_cluskey.py | 0 thealgorithms/ciphers/__init__.py | 0 {ciphers => thealgorithms/ciphers}/affine_cipher.py | 0 {ciphers => thealgorithms/ciphers}/base16.py | 0 {ciphers => thealgorithms/ciphers}/base32.py | 0 {ciphers => thealgorithms/ciphers}/base64_cipher.py | 0 {ciphers => thealgorithms/ciphers}/base85.py | 0 .../ciphers}/brute_force_caesar_cipher.py | 0 {ciphers => thealgorithms/ciphers}/caesar_cipher.py | 0 .../ciphers}/cryptomath_module.py | 0 .../ciphers}/elgamal_key_generator.py | 0 {ciphers => thealgorithms/ciphers}/onepad_cipher.py | 0 .../ciphers}/playfair_cipher.py | 0 .../ciphers}/prehistoric_men.txt | 0 {ciphers => thealgorithms/ciphers}/rabin_miller.py | 0 {ciphers => thealgorithms/ciphers}/rot13.py | 0 {ciphers => thealgorithms/ciphers}/rsa_cipher.py | 0 .../ciphers}/rsa_key_generator.py | 0 .../ciphers}/simple_substitution_cipher.py | 0 .../ciphers}/transposition_cipher.py | 0 .../transposition_cipher_encrypt_decrypt_file.py | 0 .../ciphers}/vigenere_cipher.py | 0 {ciphers => thealgorithms/ciphers}/xor_cipher.py | 0 thealgorithms/data_structures/__init__.py | 0 .../data_structures}/arrays.py | 0 .../data_structures}/avl.py | 0 .../data_structures/binary_tree}/AVLtree.py | 0 .../data_structures/binary_tree/__init__.py | 0 .../binary_tree}/binary_search_tree.py | 0 .../data_structures/binary_tree}/fenwick_tree.py | 0 .../binary_tree}/lazy_segment_tree.py | 0 .../data_structures/binary_tree}/segment_tree.py | 0 thealgorithms/data_structures/graph/__init__.py | 0 .../data_structures}/graph/bellman_ford.py | 0 .../data_structures}/graph/breadth_first_search.py | 0 .../data_structures}/graph/depth_first_search.py | 0 .../data_structures}/graph/dijkstra.py | 0 .../data_structures}/graph/dijkstra_algorithm.py | 0 .../data_structures}/graph/even_tree.py | 0 .../data_structures}/graph/floyd_warshall.py | 0 .../data_structures}/graph/graph.py | 0 .../data_structures}/graph/graph_list.py | 0 .../data_structures}/graph/graph_matrix.py | 0 .../data_structures}/hashing/__init__.py | 0 .../data_structures}/hashing/double_hash.py | 0 .../data_structures}/hashing/hash_table.py | 0 .../hashing/hash_table_with_linked_list.py | 0 .../hashing/number_theory/__init__.py | 0 .../hashing/number_theory/prime_numbers.py | 0 .../data_structures}/hashing/quadratic_probing.py | 0 thealgorithms/data_structures/heap/__init__.py | 0 .../data_structures}/heap/heap.py | 0 .../data_structures}/linked_list/__init__.py | 0 .../linked_list/doubly_linked_list.py | 0 .../linked_list/singly_linked_list.py | 0 .../data_structures}/linked_list/swapNodes.py | 0 thealgorithms/data_structures/queue/__init__.py | 0 .../data_structures}/queue/deqeue.py | 0 .../data_structures}/queue/queue_on_list.py | 0 .../data_structures}/queue/queue_on_pseudo_stack.py | 0 .../data_structures}/stacks/__init__.py | 0 .../data_structures}/stacks/balanced_parentheses.py | 0 .../stacks/infix_to_postfix_conversion.py | 0 .../data_structures}/stacks/next.py | 0 .../data_structures}/stacks/stack.py | 0 .../data_structures}/stacks/stock_span_problem.py | 0 thealgorithms/data_structures/trie/__init__.py | 0 .../data_structures}/trie/trie.py | 0 .../data_structures/union_find/__init__.py | 0 .../data_structures}/union_find/tests_union_find.py | 0 .../data_structures}/union_find/union_find.py | 0 thealgorithms/digital_image_processing/__init__.py | 0 .../digital_image_processing/filters/__init__.py | 0 .../filters/median_filter.py | 0 .../dynamic_programming}/FractionalKnapsack.py | 0 thealgorithms/dynamic_programming/__init__.py | 0 .../dynamic_programming}/abbreviation.py | 0 .../dynamic_programming}/coin_change.py | 0 .../dynamic_programming}/edit_distance.py | 0 .../dynamic_programming}/fastfibonacci.py | 0 .../dynamic_programming}/fibonacci.py | 0 .../dynamic_programming}/floyd_warshall.py | 0 .../dynamic_programming}/integer_partition.py | 0 .../k_means_clustering_tensorflow.py | 0 .../dynamic_programming}/knapsack.py | 0 .../longest_common_subsequence.py | 0 .../longest_increasing_subsequence.py | 0 .../longest_increasing_subsequence_O(nlogn).py | 0 .../dynamic_programming}/longest_sub_array.py | 0 .../dynamic_programming}/matrix_chain_order.py | 0 .../dynamic_programming}/max_sub_array.py | 0 .../dynamic_programming}/minimum_partition.py | 0 .../dynamic_programming}/rod_cutting.py | 0 .../factorial_python.py | 0 thealgorithms/file_transfer_protocol/__init__.py | 0 .../file_transfer_protocol}/ftp_client_server.py | 0 .../file_transfer_protocol}/ftp_send_receive.py | 0 .../Directed_and_Undirected_Weighted_Graph.py | 0 thealgorithms/graphs/__init__.py | 0 {graphs => thealgorithms/graphs}/a_star.py | 0 .../graphs}/articulation_points.py | 0 {graphs => thealgorithms/graphs}/basic_graphs.py | 0 .../graphs}/check_bipartite_graph_bfs.py | 0 {graphs => thealgorithms/graphs}/dijkstra.py | 0 {graphs => thealgorithms/graphs}/finding_bridges.py | 0 .../graphs}/kahns_algorithm_long.py | 0 .../graphs}/kahns_algorithm_topo.py | 0 .../graphs}/minimum_spanning_tree_kruskal.py | 0 .../graphs}/minimum_spanning_tree_prims.py | 0 .../graphs}/multi_hueristic_astar.py | 0 {graphs => thealgorithms/graphs}/scc_kosaraju.py | 0 {graphs => thealgorithms/graphs}/tarjans_scc.py | 0 thealgorithms/hashes/__init__.py | 0 {hashes => thealgorithms/hashes}/chaos_machine.py | 0 {hashes => thealgorithms/hashes}/md5.py | 0 {hashes => thealgorithms/hashes}/sha1.py | 0 .../linear_algebra_python}/README.md | 0 thealgorithms/linear_algebra_python/src/__init__.py | 0 .../linear_algebra_python}/src/lib.py | 0 .../linear_algebra_python}/src/tests.py | 0 .../machine_learning}/NaiveBayes.ipynb | 0 .../Random Forest Classifier.ipynb | 0 .../Social_Network_Ads.csv | 0 .../Random_Forest_Classification/__init__.py | 0 .../random_forest_classification.py | 0 .../Random_Forest_Regression}/Position_Salaries.csv | 0 .../Random Forest Regression.ipynb | 0 .../Random_Forest_Regression/__init__.py | 0 .../random_forest_regression.py | 0 thealgorithms/machine_learning/__init__.py | 0 .../machine_learning}/decision_tree.py | 0 .../machine_learning}/gradient_descent.py | 0 .../machine_learning}/k_means_clust.py | 0 .../machine_learning}/linear_regression.py | 0 .../machine_learning}/logistic_regression.py | 0 .../machine_learning}/perceptron.py | 0 .../reuters_one_vs_rest_classifier.ipynb | 0 .../machine_learning}/scoring_functions.py | 0 {maths => thealgorithms/maths}/PrimeCheck.py | 0 thealgorithms/maths/__init__.py | 0 {maths => thealgorithms/maths}/basic_maths.py | 0 .../maths}/fibonacci_sequence_recursion.py | 0 .../maths}/greater_common_divisor.py | 0 .../maths}/modular_exponential.py | 0 {maths => thealgorithms/maths}/newton_raphson.py | 0 {maths => thealgorithms/maths}/segmented_sieve.py | 0 .../maths}/sieve_of_eratosthenes.py | 0 {maths => thealgorithms/maths}/simpson_rule.py | 0 {maths => thealgorithms/maths}/trapezoidal_rule.py | 0 thealgorithms/matrix/__init__.py | 0 .../matrix}/matrix_multiplication_addition.py | 0 thealgorithms/networking_flow/__init__.py | 0 .../networking_flow}/ford_fulkerson.py | 0 .../networking_flow}/minimum_cut.py | 0 thealgorithms/neural_network/__init__.py | 0 .../neural_network}/bpnn.py | 0 .../neural_network}/convolution_neural_network.py | 0 .../neural_network}/fcn.ipynb | 0 .../neural_network}/perceptron.py | 0 thealgorithms/other/__init__.py | 0 {other => thealgorithms/other}/anagrams.py | 0 .../other}/binary_exponentiation.py | 0 .../other}/binary_exponentiation_2.py | 0 .../other}/detecting_english_programmatically.py | 0 {other => thealgorithms/other}/dictionary.txt | 0 {other => thealgorithms/other}/euclidean_gcd.py | 0 {other => thealgorithms/other}/findingPrimes.py | 0 .../other}/fischer_yates_shuffle.py | 0 {other => thealgorithms/other}/frequency_finder.py | 0 thealgorithms/other/game_of_life/__init__.py | 0 .../other}/game_of_life/game_o_life.py | 0 .../other}/game_of_life/sample.gif | Bin .../other}/linear_congruential_generator.py | 0 {other => thealgorithms/other}/nested_brackets.py | 0 {other => thealgorithms/other}/palindrome.py | 0 .../other}/password_generator.py | 0 {other => thealgorithms/other}/primelib.py | 0 .../other}/sierpinski_triangle.py | 0 {other => thealgorithms/other}/tower_of_hanoi.py | 0 {other => thealgorithms/other}/two_sum.py | 0 {other => thealgorithms/other}/word_patterns.py | 0 {other => thealgorithms/other}/words | 0 .../project_euler}/README.md | 0 thealgorithms/project_euler/problem_01/__init__.py | 0 .../project_euler}/problem_01/sol1.py | 0 .../project_euler}/problem_01/sol2.py | 0 .../project_euler}/problem_01/sol3.py | 0 .../project_euler}/problem_01/sol4.py | 0 .../project_euler}/problem_01/sol5.py | 0 thealgorithms/project_euler/problem_02/__init__.py | 0 .../project_euler}/problem_02/sol1.py | 0 .../project_euler}/problem_02/sol2.py | 0 .../project_euler}/problem_02/sol3.py | 0 thealgorithms/project_euler/problem_03/__init__.py | 0 .../project_euler}/problem_03/sol1.py | 0 .../project_euler}/problem_03/sol2.py | 0 thealgorithms/project_euler/problem_04/__init__.py | 0 .../project_euler}/problem_04/sol1.py | 0 .../project_euler}/problem_04/sol2.py | 0 thealgorithms/project_euler/problem_05/__init__.py | 0 .../project_euler}/problem_05/sol1.py | 0 .../project_euler}/problem_05/sol2.py | 0 thealgorithms/project_euler/problem_06/__init__.py | 0 .../project_euler}/problem_06/sol1.py | 0 .../project_euler}/problem_06/sol2.py | 0 .../project_euler}/problem_06/sol3.py | 0 thealgorithms/project_euler/problem_07/__init__.py | 0 .../project_euler}/problem_07/sol1.py | 0 .../project_euler}/problem_07/sol2.py | 0 .../project_euler}/problem_07/sol3.py | 0 thealgorithms/project_euler/problem_08/__init__.py | 0 .../project_euler}/problem_08/sol1.py | 0 .../project_euler}/problem_08/sol2.py | 0 thealgorithms/project_euler/problem_09/__init__.py | 0 .../project_euler}/problem_09/sol1.py | 0 .../project_euler}/problem_09/sol2.py | 0 .../project_euler}/problem_09/sol3.py | 0 thealgorithms/project_euler/problem_10/__init__.py | 0 .../project_euler}/problem_10/sol1.py | 0 .../project_euler}/problem_10/sol2.py | 0 thealgorithms/project_euler/problem_11/__init__.py | 0 .../project_euler}/problem_11/grid.txt | 0 .../project_euler}/problem_11/sol1.py | 0 .../project_euler}/problem_11/sol2.py | 0 thealgorithms/project_euler/problem_12/__init__.py | 0 .../project_euler}/problem_12/sol1.py | 0 .../project_euler}/problem_12/sol2.py | 0 thealgorithms/project_euler/problem_13/__init__.py | 0 .../project_euler}/problem_13/sol1.py | 0 thealgorithms/project_euler/problem_14/__init__.py | 0 .../project_euler}/problem_14/sol1.py | 0 .../project_euler}/problem_14/sol2.py | 0 thealgorithms/project_euler/problem_15/__init__.py | 0 .../project_euler}/problem_15/sol1.py | 0 thealgorithms/project_euler/problem_16/__init__.py | 0 .../project_euler}/problem_16/sol1.py | 0 thealgorithms/project_euler/problem_17/__init__.py | 0 .../project_euler}/problem_17/sol1.py | 0 thealgorithms/project_euler/problem_19/__init__.py | 0 .../project_euler}/problem_19/sol1.py | 0 thealgorithms/project_euler/problem_20/__init__.py | 0 .../project_euler}/problem_20/sol1.py | 0 .../project_euler}/problem_20/sol2.py | 0 thealgorithms/project_euler/problem_21/__init__.py | 0 .../project_euler}/problem_21/sol1.py | 0 thealgorithms/project_euler/problem_22/__init__.py | 0 .../project_euler}/problem_22/p022_names.txt | 0 .../project_euler}/problem_22/sol1.py | 0 .../project_euler}/problem_22/sol2.py | 0 thealgorithms/project_euler/problem_24/__init__.py | 0 .../project_euler}/problem_24/sol1.py | 0 thealgorithms/project_euler/problem_25/__init__.py | 0 .../project_euler}/problem_25/sol1.py | 0 .../project_euler}/problem_25/sol2.py | 0 thealgorithms/project_euler/problem_28/__init__.py | 0 .../project_euler}/problem_28/sol1.py | 0 thealgorithms/project_euler/problem_29/__init__.py | 0 .../project_euler}/problem_29/solution.py | 0 thealgorithms/project_euler/problem_31/__init__.py | 0 .../project_euler}/problem_31/sol1.py | 0 thealgorithms/project_euler/problem_36/__init__.py | 0 .../project_euler}/problem_36/sol1.py | 0 thealgorithms/project_euler/problem_40/__init__.py | 0 .../project_euler}/problem_40/sol1.py | 0 thealgorithms/project_euler/problem_48/__init__.py | 0 .../project_euler}/problem_48/sol1.py | 0 thealgorithms/project_euler/problem_52/__init__.py | 0 .../project_euler}/problem_52/sol1.py | 0 thealgorithms/project_euler/problem_53/__init__.py | 0 .../project_euler}/problem_53/sol1.py | 0 thealgorithms/project_euler/problem_76/__init__.py | 0 .../project_euler}/problem_76/sol1.py | 0 thealgorithms/searches/__init__.py | 0 .../searches}/binary_search.py | 0 .../searches}/interpolation_search.py | 0 {searches => thealgorithms/searches}/jump_search.py | 0 .../searches}/linear_search.py | 0 .../searches}/quick_select.py | 0 .../searches}/sentinel_linear_search.py | 0 {searches => thealgorithms/searches}/tabu_search.py | 0 .../searches}/tabu_test_data.txt | 0 .../searches}/ternary_search.py | 0 .../searches}/test_tabu_search.py | 0 .../simple_client}/README.md | 0 thealgorithms/simple_client/__init__.py | 0 .../simple_client}/client.py | 0 .../simple_client}/server.py | 0 {sorts => thealgorithms/sorts}/BitonicSort.py | 0 thealgorithms/sorts/__init__.py | 0 {sorts => thealgorithms/sorts}/bogosort.py | 0 {sorts => thealgorithms/sorts}/bubble_sort.py | 0 {sorts => thealgorithms/sorts}/bucket_sort.py | 0 .../sorts}/cocktail_shaker_sort.py | 0 {sorts => thealgorithms/sorts}/comb_sort.py | 0 {sorts => thealgorithms/sorts}/counting_sort.py | 0 {sorts => thealgorithms/sorts}/cyclesort.py | 0 {sorts => thealgorithms/sorts}/external-sort.py | 0 {sorts => thealgorithms/sorts}/gnome_sort.py | 0 {sorts => thealgorithms/sorts}/heap_sort.py | 0 {sorts => thealgorithms/sorts}/insertion_sort.py | 0 {sorts => thealgorithms/sorts}/merge_sort.py | 0 .../sorts}/merge_sort_fastest.py | 0 .../sorts}/normal_distribution_quick_sort.md | 0 {sorts => thealgorithms/sorts}/pancake_sort.py | 0 {sorts => thealgorithms/sorts}/quick_sort.py | 0 .../sorts}/quick_sort_3_partition.py | 0 {sorts => thealgorithms/sorts}/radix_sort.py | 0 .../sorts}/random_normal_distribution_quicksort.py | 0 {sorts => thealgorithms/sorts}/selection_sort.py | 0 {sorts => thealgorithms/sorts}/shell_sort.py | 0 {sorts => thealgorithms/sorts}/sorting_graphs.png | Bin {sorts => thealgorithms/sorts}/timsort.py | 0 {sorts => thealgorithms/sorts}/topological_sort.py | 0 {sorts => thealgorithms/sorts}/tree_sort.py | 0 thealgorithms/strings/__init__.py | 0 .../strings}/knuth_morris_pratt.py | 0 .../strings}/levenshtein_distance.py | 0 {strings => thealgorithms/strings}/manacher.py | 0 .../strings}/min_cost_string_conversion.py | 0 {strings => thealgorithms/strings}/rabin_karp.py | 0 thealgorithms/traversals/__init__.py | 0 .../traversals}/binary_tree_traversals.py | 0 353 files changed, 0 insertions(+), 0 deletions(-) rename {Graphs => thealgorithms/Graphs}/BFS.py (100%) rename {Graphs => thealgorithms/Graphs}/DFS.py (100%) rename {data_structures => thealgorithms/Graphs}/__init__.py (100%) rename {Maths => thealgorithms/Maths}/3n+1.py (100%) rename {Maths => thealgorithms/Maths}/FindMax.py (100%) rename {Maths => thealgorithms/Maths}/FindMin.py (100%) rename {data_structures/hashing/number_theory => thealgorithms/Maths}/__init__.py (100%) rename {Maths => thealgorithms/Maths}/abs.py (100%) rename {Maths => thealgorithms/Maths}/absMax.py (100%) rename {Maths => thealgorithms/Maths}/absMin.py (100%) rename {Maths => thealgorithms/Maths}/average.py (100%) rename {Maths => thealgorithms/Maths}/find_hcf.py (100%) rename {Maths => thealgorithms/Maths}/find_lcm.py (100%) rename {data_structures/queue => thealgorithms}/__init__.py (100%) rename {analysis => thealgorithms/analysis}/compression_analysis/PSNR-example-base.png (100%) rename {analysis => thealgorithms/analysis}/compression_analysis/PSNR-example-comp-10.jpg (100%) rename {data_structures/union_find => thealgorithms/analysis/compression_analysis}/__init__.py (100%) rename {analysis => thealgorithms/analysis}/compression_analysis/compressed_image.png (100%) rename {analysis => thealgorithms/analysis}/compression_analysis/example_image.jpg (100%) rename {analysis => thealgorithms/analysis}/compression_analysis/example_wikipedia_image.jpg (100%) rename {analysis => thealgorithms/analysis}/compression_analysis/original_image.png (100%) rename {analysis => thealgorithms/analysis}/compression_analysis/psnr.py (100%) rename {digital_image_processing => thealgorithms/arithmetic_analysis}/__init__.py (100%) rename {arithmetic_analysis => thealgorithms/arithmetic_analysis}/bisection.py (100%) rename {arithmetic_analysis => thealgorithms/arithmetic_analysis}/intersection.py (100%) rename {arithmetic_analysis => thealgorithms/arithmetic_analysis}/lu_decomposition.py (100%) rename {arithmetic_analysis => thealgorithms/arithmetic_analysis}/newton_method.py (100%) rename {arithmetic_analysis => thealgorithms/arithmetic_analysis}/newton_raphson_method.py (100%) rename {digital_image_processing/filters => thealgorithms/binary_tree}/__init__.py (100%) rename {binary_tree => thealgorithms/binary_tree}/basic_binary_tree.py (100%) create mode 100644 thealgorithms/boolean_algebra/__init__.py rename {boolean_algebra => thealgorithms/boolean_algebra}/quine_mc_cluskey.py (100%) create mode 100644 thealgorithms/ciphers/__init__.py rename {ciphers => thealgorithms/ciphers}/affine_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/base16.py (100%) rename {ciphers => thealgorithms/ciphers}/base32.py (100%) rename {ciphers => thealgorithms/ciphers}/base64_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/base85.py (100%) rename {ciphers => thealgorithms/ciphers}/brute_force_caesar_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/caesar_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/cryptomath_module.py (100%) rename {ciphers => thealgorithms/ciphers}/elgamal_key_generator.py (100%) rename {ciphers => thealgorithms/ciphers}/onepad_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/playfair_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/prehistoric_men.txt (100%) rename {ciphers => thealgorithms/ciphers}/rabin_miller.py (100%) rename {ciphers => thealgorithms/ciphers}/rot13.py (100%) rename {ciphers => thealgorithms/ciphers}/rsa_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/rsa_key_generator.py (100%) rename {ciphers => thealgorithms/ciphers}/simple_substitution_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/transposition_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/transposition_cipher_encrypt_decrypt_file.py (100%) rename {ciphers => thealgorithms/ciphers}/vigenere_cipher.py (100%) rename {ciphers => thealgorithms/ciphers}/xor_cipher.py (100%) create mode 100644 thealgorithms/data_structures/__init__.py rename {data_structures => thealgorithms/data_structures}/arrays.py (100%) rename {data_structures => thealgorithms/data_structures}/avl.py (100%) rename {data_structures/binary tree => thealgorithms/data_structures/binary_tree}/AVLtree.py (100%) create mode 100644 thealgorithms/data_structures/binary_tree/__init__.py rename {data_structures/binary tree => thealgorithms/data_structures/binary_tree}/binary_search_tree.py (100%) rename {data_structures/binary tree => thealgorithms/data_structures/binary_tree}/fenwick_tree.py (100%) rename {data_structures/binary tree => thealgorithms/data_structures/binary_tree}/lazy_segment_tree.py (100%) rename {data_structures/binary tree => thealgorithms/data_structures/binary_tree}/segment_tree.py (100%) create mode 100644 thealgorithms/data_structures/graph/__init__.py rename {data_structures => thealgorithms/data_structures}/graph/bellman_ford.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/breadth_first_search.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/depth_first_search.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/dijkstra.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/dijkstra_algorithm.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/even_tree.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/floyd_warshall.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/graph.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/graph_list.py (100%) rename {data_structures => thealgorithms/data_structures}/graph/graph_matrix.py (100%) rename {data_structures => thealgorithms/data_structures}/hashing/__init__.py (100%) rename {data_structures => thealgorithms/data_structures}/hashing/double_hash.py (100%) rename {data_structures => thealgorithms/data_structures}/hashing/hash_table.py (100%) rename {data_structures => thealgorithms/data_structures}/hashing/hash_table_with_linked_list.py (100%) create mode 100644 thealgorithms/data_structures/hashing/number_theory/__init__.py rename {data_structures => thealgorithms/data_structures}/hashing/number_theory/prime_numbers.py (100%) rename {data_structures => thealgorithms/data_structures}/hashing/quadratic_probing.py (100%) create mode 100644 thealgorithms/data_structures/heap/__init__.py rename {data_structures => thealgorithms/data_structures}/heap/heap.py (100%) rename {data_structures => thealgorithms/data_structures}/linked_list/__init__.py (100%) rename {data_structures => thealgorithms/data_structures}/linked_list/doubly_linked_list.py (100%) rename {data_structures => thealgorithms/data_structures}/linked_list/singly_linked_list.py (100%) rename {data_structures => thealgorithms/data_structures}/linked_list/swapNodes.py (100%) create mode 100644 thealgorithms/data_structures/queue/__init__.py rename {data_structures => thealgorithms/data_structures}/queue/deqeue.py (100%) rename {data_structures => thealgorithms/data_structures}/queue/queue_on_list.py (100%) rename {data_structures => thealgorithms/data_structures}/queue/queue_on_pseudo_stack.py (100%) rename {data_structures => thealgorithms/data_structures}/stacks/__init__.py (100%) rename {data_structures => thealgorithms/data_structures}/stacks/balanced_parentheses.py (100%) rename {data_structures => thealgorithms/data_structures}/stacks/infix_to_postfix_conversion.py (100%) rename {data_structures => thealgorithms/data_structures}/stacks/next.py (100%) rename {data_structures => thealgorithms/data_structures}/stacks/stack.py (100%) rename {data_structures => thealgorithms/data_structures}/stacks/stock_span_problem.py (100%) create mode 100644 thealgorithms/data_structures/trie/__init__.py rename {data_structures => thealgorithms/data_structures}/trie/trie.py (100%) create mode 100644 thealgorithms/data_structures/union_find/__init__.py rename {data_structures => thealgorithms/data_structures}/union_find/tests_union_find.py (100%) rename {data_structures => thealgorithms/data_structures}/union_find/union_find.py (100%) create mode 100644 thealgorithms/digital_image_processing/__init__.py create mode 100644 thealgorithms/digital_image_processing/filters/__init__.py rename {digital_image_processing => thealgorithms/digital_image_processing}/filters/median_filter.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/FractionalKnapsack.py (100%) create mode 100644 thealgorithms/dynamic_programming/__init__.py rename {dynamic_programming => thealgorithms/dynamic_programming}/abbreviation.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/coin_change.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/edit_distance.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/fastfibonacci.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/fibonacci.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/floyd_warshall.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/integer_partition.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/k_means_clustering_tensorflow.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/knapsack.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/longest_common_subsequence.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/longest_increasing_subsequence.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/longest_increasing_subsequence_O(nlogn).py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/longest_sub_array.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/matrix_chain_order.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/max_sub_array.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/minimum_partition.py (100%) rename {dynamic_programming => thealgorithms/dynamic_programming}/rod_cutting.py (100%) rename factorial_python.py => thealgorithms/factorial_python.py (100%) create mode 100644 thealgorithms/file_transfer_protocol/__init__.py rename {file_transfer_protocol => thealgorithms/file_transfer_protocol}/ftp_client_server.py (100%) rename {file_transfer_protocol => thealgorithms/file_transfer_protocol}/ftp_send_receive.py (100%) rename graphs/Directed and Undirected (Weighted) Graph.py => thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py (100%) create mode 100644 thealgorithms/graphs/__init__.py rename {graphs => thealgorithms/graphs}/a_star.py (100%) rename {graphs => thealgorithms/graphs}/articulation_points.py (100%) rename {graphs => thealgorithms/graphs}/basic_graphs.py (100%) rename {graphs => thealgorithms/graphs}/check_bipartite_graph_bfs.py (100%) rename {graphs => thealgorithms/graphs}/dijkstra.py (100%) rename {graphs => thealgorithms/graphs}/finding_bridges.py (100%) rename {graphs => thealgorithms/graphs}/kahns_algorithm_long.py (100%) rename {graphs => thealgorithms/graphs}/kahns_algorithm_topo.py (100%) rename {graphs => thealgorithms/graphs}/minimum_spanning_tree_kruskal.py (100%) rename {graphs => thealgorithms/graphs}/minimum_spanning_tree_prims.py (100%) rename {graphs => thealgorithms/graphs}/multi_hueristic_astar.py (100%) rename {graphs => thealgorithms/graphs}/scc_kosaraju.py (100%) rename {graphs => thealgorithms/graphs}/tarjans_scc.py (100%) create mode 100644 thealgorithms/hashes/__init__.py rename {hashes => thealgorithms/hashes}/chaos_machine.py (100%) rename {hashes => thealgorithms/hashes}/md5.py (100%) rename {hashes => thealgorithms/hashes}/sha1.py (100%) rename {linear_algebra_python => thealgorithms/linear_algebra_python}/README.md (100%) create mode 100644 thealgorithms/linear_algebra_python/src/__init__.py rename {linear_algebra_python => thealgorithms/linear_algebra_python}/src/lib.py (100%) rename {linear_algebra_python => thealgorithms/linear_algebra_python}/src/tests.py (100%) rename {machine_learning => thealgorithms/machine_learning}/NaiveBayes.ipynb (100%) rename {machine_learning/Random Forest Classification => thealgorithms/machine_learning/Random_Forest_Classification}/Random Forest Classifier.ipynb (100%) rename {machine_learning/Random Forest Classification => thealgorithms/machine_learning/Random_Forest_Classification}/Social_Network_Ads.csv (100%) create mode 100644 thealgorithms/machine_learning/Random_Forest_Classification/__init__.py rename {machine_learning/Random Forest Classification => thealgorithms/machine_learning/Random_Forest_Classification}/random_forest_classification.py (100%) rename {machine_learning/Random Forest Regression => thealgorithms/machine_learning/Random_Forest_Regression}/Position_Salaries.csv (100%) rename {machine_learning/Random Forest Regression => thealgorithms/machine_learning/Random_Forest_Regression}/Random Forest Regression.ipynb (100%) create mode 100644 thealgorithms/machine_learning/Random_Forest_Regression/__init__.py rename {machine_learning/Random Forest Regression => thealgorithms/machine_learning/Random_Forest_Regression}/random_forest_regression.py (100%) create mode 100644 thealgorithms/machine_learning/__init__.py rename {machine_learning => thealgorithms/machine_learning}/decision_tree.py (100%) rename {machine_learning => thealgorithms/machine_learning}/gradient_descent.py (100%) rename {machine_learning => thealgorithms/machine_learning}/k_means_clust.py (100%) rename {machine_learning => thealgorithms/machine_learning}/linear_regression.py (100%) rename {machine_learning => thealgorithms/machine_learning}/logistic_regression.py (100%) rename {machine_learning => thealgorithms/machine_learning}/perceptron.py (100%) rename {machine_learning => thealgorithms/machine_learning}/reuters_one_vs_rest_classifier.ipynb (100%) rename {machine_learning => thealgorithms/machine_learning}/scoring_functions.py (100%) rename {maths => thealgorithms/maths}/PrimeCheck.py (100%) create mode 100644 thealgorithms/maths/__init__.py rename {maths => thealgorithms/maths}/basic_maths.py (100%) rename {maths => thealgorithms/maths}/fibonacci_sequence_recursion.py (100%) rename {maths => thealgorithms/maths}/greater_common_divisor.py (100%) rename {maths => thealgorithms/maths}/modular_exponential.py (100%) rename {maths => thealgorithms/maths}/newton_raphson.py (100%) rename {maths => thealgorithms/maths}/segmented_sieve.py (100%) rename {maths => thealgorithms/maths}/sieve_of_eratosthenes.py (100%) rename {maths => thealgorithms/maths}/simpson_rule.py (100%) rename {maths => thealgorithms/maths}/trapezoidal_rule.py (100%) create mode 100644 thealgorithms/matrix/__init__.py rename {matrix => thealgorithms/matrix}/matrix_multiplication_addition.py (100%) create mode 100644 thealgorithms/networking_flow/__init__.py rename {networking_flow => thealgorithms/networking_flow}/ford_fulkerson.py (100%) rename {networking_flow => thealgorithms/networking_flow}/minimum_cut.py (100%) create mode 100644 thealgorithms/neural_network/__init__.py rename {neural_network => thealgorithms/neural_network}/bpnn.py (100%) rename {neural_network => thealgorithms/neural_network}/convolution_neural_network.py (100%) rename {neural_network => thealgorithms/neural_network}/fcn.ipynb (100%) rename {neural_network => thealgorithms/neural_network}/perceptron.py (100%) create mode 100644 thealgorithms/other/__init__.py rename {other => thealgorithms/other}/anagrams.py (100%) rename {other => thealgorithms/other}/binary_exponentiation.py (100%) rename {other => thealgorithms/other}/binary_exponentiation_2.py (100%) rename {other => thealgorithms/other}/detecting_english_programmatically.py (100%) rename {other => thealgorithms/other}/dictionary.txt (100%) rename {other => thealgorithms/other}/euclidean_gcd.py (100%) rename {other => thealgorithms/other}/findingPrimes.py (100%) rename {other => thealgorithms/other}/fischer_yates_shuffle.py (100%) rename {other => thealgorithms/other}/frequency_finder.py (100%) create mode 100644 thealgorithms/other/game_of_life/__init__.py rename {other => thealgorithms/other}/game_of_life/game_o_life.py (100%) rename {other => thealgorithms/other}/game_of_life/sample.gif (100%) rename {other => thealgorithms/other}/linear_congruential_generator.py (100%) rename {other => thealgorithms/other}/nested_brackets.py (100%) rename {other => thealgorithms/other}/palindrome.py (100%) rename {other => thealgorithms/other}/password_generator.py (100%) rename {other => thealgorithms/other}/primelib.py (100%) rename {other => thealgorithms/other}/sierpinski_triangle.py (100%) rename {other => thealgorithms/other}/tower_of_hanoi.py (100%) rename {other => thealgorithms/other}/two_sum.py (100%) rename {other => thealgorithms/other}/word_patterns.py (100%) rename {other => thealgorithms/other}/words (100%) rename {project_euler => thealgorithms/project_euler}/README.md (100%) create mode 100644 thealgorithms/project_euler/problem_01/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_01/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_01/sol2.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_01/sol3.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_01/sol4.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_01/sol5.py (100%) create mode 100644 thealgorithms/project_euler/problem_02/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_02/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_02/sol2.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_02/sol3.py (100%) create mode 100644 thealgorithms/project_euler/problem_03/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_03/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_03/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_04/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_04/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_04/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_05/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_05/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_05/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_06/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_06/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_06/sol2.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_06/sol3.py (100%) create mode 100644 thealgorithms/project_euler/problem_07/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_07/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_07/sol2.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_07/sol3.py (100%) create mode 100644 thealgorithms/project_euler/problem_08/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_08/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_08/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_09/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_09/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_09/sol2.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_09/sol3.py (100%) create mode 100644 thealgorithms/project_euler/problem_10/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_10/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_10/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_11/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_11/grid.txt (100%) rename {project_euler => thealgorithms/project_euler}/problem_11/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_11/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_12/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_12/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_12/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_13/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_13/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_14/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_14/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_14/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_15/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_15/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_16/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_16/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_17/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_17/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_19/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_19/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_20/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_20/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_20/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_21/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_21/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_22/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_22/p022_names.txt (100%) rename {project_euler => thealgorithms/project_euler}/problem_22/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_22/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_24/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_24/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_25/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_25/sol1.py (100%) rename {project_euler => thealgorithms/project_euler}/problem_25/sol2.py (100%) create mode 100644 thealgorithms/project_euler/problem_28/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_28/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_29/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_29/solution.py (100%) create mode 100644 thealgorithms/project_euler/problem_31/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_31/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_36/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_36/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_40/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_40/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_48/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_48/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_52/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_52/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_53/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_53/sol1.py (100%) create mode 100644 thealgorithms/project_euler/problem_76/__init__.py rename {project_euler => thealgorithms/project_euler}/problem_76/sol1.py (100%) create mode 100644 thealgorithms/searches/__init__.py rename {searches => thealgorithms/searches}/binary_search.py (100%) rename {searches => thealgorithms/searches}/interpolation_search.py (100%) rename {searches => thealgorithms/searches}/jump_search.py (100%) rename {searches => thealgorithms/searches}/linear_search.py (100%) rename {searches => thealgorithms/searches}/quick_select.py (100%) rename {searches => thealgorithms/searches}/sentinel_linear_search.py (100%) rename {searches => thealgorithms/searches}/tabu_search.py (100%) rename {searches => thealgorithms/searches}/tabu_test_data.txt (100%) rename {searches => thealgorithms/searches}/ternary_search.py (100%) rename {searches => thealgorithms/searches}/test_tabu_search.py (100%) rename {simple_client => thealgorithms/simple_client}/README.md (100%) create mode 100644 thealgorithms/simple_client/__init__.py rename {simple_client => thealgorithms/simple_client}/client.py (100%) rename {simple_client => thealgorithms/simple_client}/server.py (100%) rename {sorts => thealgorithms/sorts}/BitonicSort.py (100%) create mode 100644 thealgorithms/sorts/__init__.py rename {sorts => thealgorithms/sorts}/bogosort.py (100%) rename {sorts => thealgorithms/sorts}/bubble_sort.py (100%) rename {sorts => thealgorithms/sorts}/bucket_sort.py (100%) rename {sorts => thealgorithms/sorts}/cocktail_shaker_sort.py (100%) rename {sorts => thealgorithms/sorts}/comb_sort.py (100%) rename {sorts => thealgorithms/sorts}/counting_sort.py (100%) rename {sorts => thealgorithms/sorts}/cyclesort.py (100%) rename {sorts => thealgorithms/sorts}/external-sort.py (100%) rename {sorts => thealgorithms/sorts}/gnome_sort.py (100%) rename {sorts => thealgorithms/sorts}/heap_sort.py (100%) rename {sorts => thealgorithms/sorts}/insertion_sort.py (100%) rename {sorts => thealgorithms/sorts}/merge_sort.py (100%) rename {sorts => thealgorithms/sorts}/merge_sort_fastest.py (100%) rename {sorts => thealgorithms/sorts}/normal_distribution_quick_sort.md (100%) rename {sorts => thealgorithms/sorts}/pancake_sort.py (100%) rename {sorts => thealgorithms/sorts}/quick_sort.py (100%) rename {sorts => thealgorithms/sorts}/quick_sort_3_partition.py (100%) rename {sorts => thealgorithms/sorts}/radix_sort.py (100%) rename {sorts => thealgorithms/sorts}/random_normal_distribution_quicksort.py (100%) rename {sorts => thealgorithms/sorts}/selection_sort.py (100%) rename {sorts => thealgorithms/sorts}/shell_sort.py (100%) rename {sorts => thealgorithms/sorts}/sorting_graphs.png (100%) rename {sorts => thealgorithms/sorts}/timsort.py (100%) rename {sorts => thealgorithms/sorts}/topological_sort.py (100%) rename {sorts => thealgorithms/sorts}/tree_sort.py (100%) create mode 100644 thealgorithms/strings/__init__.py rename {strings => thealgorithms/strings}/knuth_morris_pratt.py (100%) rename {strings => thealgorithms/strings}/levenshtein_distance.py (100%) rename {strings => thealgorithms/strings}/manacher.py (100%) rename {strings => thealgorithms/strings}/min_cost_string_conversion.py (100%) rename {strings => thealgorithms/strings}/rabin_karp.py (100%) create mode 100644 thealgorithms/traversals/__init__.py rename {traversals => thealgorithms/traversals}/binary_tree_traversals.py (100%) diff --git a/Graphs/BFS.py b/thealgorithms/Graphs/BFS.py similarity index 100% rename from Graphs/BFS.py rename to thealgorithms/Graphs/BFS.py diff --git a/Graphs/DFS.py b/thealgorithms/Graphs/DFS.py similarity index 100% rename from Graphs/DFS.py rename to thealgorithms/Graphs/DFS.py diff --git a/data_structures/__init__.py b/thealgorithms/Graphs/__init__.py similarity index 100% rename from data_structures/__init__.py rename to thealgorithms/Graphs/__init__.py diff --git a/Maths/3n+1.py b/thealgorithms/Maths/3n+1.py similarity index 100% rename from Maths/3n+1.py rename to thealgorithms/Maths/3n+1.py diff --git a/Maths/FindMax.py b/thealgorithms/Maths/FindMax.py similarity index 100% rename from Maths/FindMax.py rename to thealgorithms/Maths/FindMax.py diff --git a/Maths/FindMin.py b/thealgorithms/Maths/FindMin.py similarity index 100% rename from Maths/FindMin.py rename to thealgorithms/Maths/FindMin.py diff --git a/data_structures/hashing/number_theory/__init__.py b/thealgorithms/Maths/__init__.py similarity index 100% rename from data_structures/hashing/number_theory/__init__.py rename to thealgorithms/Maths/__init__.py diff --git a/Maths/abs.py b/thealgorithms/Maths/abs.py similarity index 100% rename from Maths/abs.py rename to thealgorithms/Maths/abs.py diff --git a/Maths/absMax.py b/thealgorithms/Maths/absMax.py similarity index 100% rename from Maths/absMax.py rename to thealgorithms/Maths/absMax.py diff --git a/Maths/absMin.py b/thealgorithms/Maths/absMin.py similarity index 100% rename from Maths/absMin.py rename to thealgorithms/Maths/absMin.py diff --git a/Maths/average.py b/thealgorithms/Maths/average.py similarity index 100% rename from Maths/average.py rename to thealgorithms/Maths/average.py diff --git a/Maths/find_hcf.py b/thealgorithms/Maths/find_hcf.py similarity index 100% rename from Maths/find_hcf.py rename to thealgorithms/Maths/find_hcf.py diff --git a/Maths/find_lcm.py b/thealgorithms/Maths/find_lcm.py similarity index 100% rename from Maths/find_lcm.py rename to thealgorithms/Maths/find_lcm.py diff --git a/data_structures/queue/__init__.py b/thealgorithms/__init__.py similarity index 100% rename from data_structures/queue/__init__.py rename to thealgorithms/__init__.py diff --git a/analysis/compression_analysis/PSNR-example-base.png b/thealgorithms/analysis/compression_analysis/PSNR-example-base.png similarity index 100% rename from analysis/compression_analysis/PSNR-example-base.png rename to thealgorithms/analysis/compression_analysis/PSNR-example-base.png diff --git a/analysis/compression_analysis/PSNR-example-comp-10.jpg b/thealgorithms/analysis/compression_analysis/PSNR-example-comp-10.jpg similarity index 100% rename from analysis/compression_analysis/PSNR-example-comp-10.jpg rename to thealgorithms/analysis/compression_analysis/PSNR-example-comp-10.jpg diff --git a/data_structures/union_find/__init__.py b/thealgorithms/analysis/compression_analysis/__init__.py similarity index 100% rename from data_structures/union_find/__init__.py rename to thealgorithms/analysis/compression_analysis/__init__.py diff --git a/analysis/compression_analysis/compressed_image.png b/thealgorithms/analysis/compression_analysis/compressed_image.png similarity index 100% rename from analysis/compression_analysis/compressed_image.png rename to thealgorithms/analysis/compression_analysis/compressed_image.png diff --git a/analysis/compression_analysis/example_image.jpg b/thealgorithms/analysis/compression_analysis/example_image.jpg similarity index 100% rename from analysis/compression_analysis/example_image.jpg rename to thealgorithms/analysis/compression_analysis/example_image.jpg diff --git a/analysis/compression_analysis/example_wikipedia_image.jpg b/thealgorithms/analysis/compression_analysis/example_wikipedia_image.jpg similarity index 100% rename from analysis/compression_analysis/example_wikipedia_image.jpg rename to thealgorithms/analysis/compression_analysis/example_wikipedia_image.jpg diff --git a/analysis/compression_analysis/original_image.png b/thealgorithms/analysis/compression_analysis/original_image.png similarity index 100% rename from analysis/compression_analysis/original_image.png rename to thealgorithms/analysis/compression_analysis/original_image.png diff --git a/analysis/compression_analysis/psnr.py b/thealgorithms/analysis/compression_analysis/psnr.py similarity index 100% rename from analysis/compression_analysis/psnr.py rename to thealgorithms/analysis/compression_analysis/psnr.py diff --git a/digital_image_processing/__init__.py b/thealgorithms/arithmetic_analysis/__init__.py similarity index 100% rename from digital_image_processing/__init__.py rename to thealgorithms/arithmetic_analysis/__init__.py diff --git a/arithmetic_analysis/bisection.py b/thealgorithms/arithmetic_analysis/bisection.py similarity index 100% rename from arithmetic_analysis/bisection.py rename to thealgorithms/arithmetic_analysis/bisection.py diff --git a/arithmetic_analysis/intersection.py b/thealgorithms/arithmetic_analysis/intersection.py similarity index 100% rename from arithmetic_analysis/intersection.py rename to thealgorithms/arithmetic_analysis/intersection.py diff --git a/arithmetic_analysis/lu_decomposition.py b/thealgorithms/arithmetic_analysis/lu_decomposition.py similarity index 100% rename from arithmetic_analysis/lu_decomposition.py rename to thealgorithms/arithmetic_analysis/lu_decomposition.py diff --git a/arithmetic_analysis/newton_method.py b/thealgorithms/arithmetic_analysis/newton_method.py similarity index 100% rename from arithmetic_analysis/newton_method.py rename to thealgorithms/arithmetic_analysis/newton_method.py diff --git a/arithmetic_analysis/newton_raphson_method.py b/thealgorithms/arithmetic_analysis/newton_raphson_method.py similarity index 100% rename from arithmetic_analysis/newton_raphson_method.py rename to thealgorithms/arithmetic_analysis/newton_raphson_method.py diff --git a/digital_image_processing/filters/__init__.py b/thealgorithms/binary_tree/__init__.py similarity index 100% rename from digital_image_processing/filters/__init__.py rename to thealgorithms/binary_tree/__init__.py diff --git a/binary_tree/basic_binary_tree.py b/thealgorithms/binary_tree/basic_binary_tree.py similarity index 100% rename from binary_tree/basic_binary_tree.py rename to thealgorithms/binary_tree/basic_binary_tree.py diff --git a/thealgorithms/boolean_algebra/__init__.py b/thealgorithms/boolean_algebra/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/boolean_algebra/quine_mc_cluskey.py b/thealgorithms/boolean_algebra/quine_mc_cluskey.py similarity index 100% rename from boolean_algebra/quine_mc_cluskey.py rename to thealgorithms/boolean_algebra/quine_mc_cluskey.py diff --git a/thealgorithms/ciphers/__init__.py b/thealgorithms/ciphers/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/ciphers/affine_cipher.py b/thealgorithms/ciphers/affine_cipher.py similarity index 100% rename from ciphers/affine_cipher.py rename to thealgorithms/ciphers/affine_cipher.py diff --git a/ciphers/base16.py b/thealgorithms/ciphers/base16.py similarity index 100% rename from ciphers/base16.py rename to thealgorithms/ciphers/base16.py diff --git a/ciphers/base32.py b/thealgorithms/ciphers/base32.py similarity index 100% rename from ciphers/base32.py rename to thealgorithms/ciphers/base32.py diff --git a/ciphers/base64_cipher.py b/thealgorithms/ciphers/base64_cipher.py similarity index 100% rename from ciphers/base64_cipher.py rename to thealgorithms/ciphers/base64_cipher.py diff --git a/ciphers/base85.py b/thealgorithms/ciphers/base85.py similarity index 100% rename from ciphers/base85.py rename to thealgorithms/ciphers/base85.py diff --git a/ciphers/brute_force_caesar_cipher.py b/thealgorithms/ciphers/brute_force_caesar_cipher.py similarity index 100% rename from ciphers/brute_force_caesar_cipher.py rename to thealgorithms/ciphers/brute_force_caesar_cipher.py diff --git a/ciphers/caesar_cipher.py b/thealgorithms/ciphers/caesar_cipher.py similarity index 100% rename from ciphers/caesar_cipher.py rename to thealgorithms/ciphers/caesar_cipher.py diff --git a/ciphers/cryptomath_module.py b/thealgorithms/ciphers/cryptomath_module.py similarity index 100% rename from ciphers/cryptomath_module.py rename to thealgorithms/ciphers/cryptomath_module.py diff --git a/ciphers/elgamal_key_generator.py b/thealgorithms/ciphers/elgamal_key_generator.py similarity index 100% rename from ciphers/elgamal_key_generator.py rename to thealgorithms/ciphers/elgamal_key_generator.py diff --git a/ciphers/onepad_cipher.py b/thealgorithms/ciphers/onepad_cipher.py similarity index 100% rename from ciphers/onepad_cipher.py rename to thealgorithms/ciphers/onepad_cipher.py diff --git a/ciphers/playfair_cipher.py b/thealgorithms/ciphers/playfair_cipher.py similarity index 100% rename from ciphers/playfair_cipher.py rename to thealgorithms/ciphers/playfair_cipher.py diff --git a/ciphers/prehistoric_men.txt b/thealgorithms/ciphers/prehistoric_men.txt similarity index 100% rename from ciphers/prehistoric_men.txt rename to thealgorithms/ciphers/prehistoric_men.txt diff --git a/ciphers/rabin_miller.py b/thealgorithms/ciphers/rabin_miller.py similarity index 100% rename from ciphers/rabin_miller.py rename to thealgorithms/ciphers/rabin_miller.py diff --git a/ciphers/rot13.py b/thealgorithms/ciphers/rot13.py similarity index 100% rename from ciphers/rot13.py rename to thealgorithms/ciphers/rot13.py diff --git a/ciphers/rsa_cipher.py b/thealgorithms/ciphers/rsa_cipher.py similarity index 100% rename from ciphers/rsa_cipher.py rename to thealgorithms/ciphers/rsa_cipher.py diff --git a/ciphers/rsa_key_generator.py b/thealgorithms/ciphers/rsa_key_generator.py similarity index 100% rename from ciphers/rsa_key_generator.py rename to thealgorithms/ciphers/rsa_key_generator.py diff --git a/ciphers/simple_substitution_cipher.py b/thealgorithms/ciphers/simple_substitution_cipher.py similarity index 100% rename from ciphers/simple_substitution_cipher.py rename to thealgorithms/ciphers/simple_substitution_cipher.py diff --git a/ciphers/transposition_cipher.py b/thealgorithms/ciphers/transposition_cipher.py similarity index 100% rename from ciphers/transposition_cipher.py rename to thealgorithms/ciphers/transposition_cipher.py diff --git a/ciphers/transposition_cipher_encrypt_decrypt_file.py b/thealgorithms/ciphers/transposition_cipher_encrypt_decrypt_file.py similarity index 100% rename from ciphers/transposition_cipher_encrypt_decrypt_file.py rename to thealgorithms/ciphers/transposition_cipher_encrypt_decrypt_file.py diff --git a/ciphers/vigenere_cipher.py b/thealgorithms/ciphers/vigenere_cipher.py similarity index 100% rename from ciphers/vigenere_cipher.py rename to thealgorithms/ciphers/vigenere_cipher.py diff --git a/ciphers/xor_cipher.py b/thealgorithms/ciphers/xor_cipher.py similarity index 100% rename from ciphers/xor_cipher.py rename to thealgorithms/ciphers/xor_cipher.py diff --git a/thealgorithms/data_structures/__init__.py b/thealgorithms/data_structures/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/arrays.py b/thealgorithms/data_structures/arrays.py similarity index 100% rename from data_structures/arrays.py rename to thealgorithms/data_structures/arrays.py diff --git a/data_structures/avl.py b/thealgorithms/data_structures/avl.py similarity index 100% rename from data_structures/avl.py rename to thealgorithms/data_structures/avl.py diff --git a/data_structures/binary tree/AVLtree.py b/thealgorithms/data_structures/binary_tree/AVLtree.py similarity index 100% rename from data_structures/binary tree/AVLtree.py rename to thealgorithms/data_structures/binary_tree/AVLtree.py diff --git a/thealgorithms/data_structures/binary_tree/__init__.py b/thealgorithms/data_structures/binary_tree/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/binary tree/binary_search_tree.py b/thealgorithms/data_structures/binary_tree/binary_search_tree.py similarity index 100% rename from data_structures/binary tree/binary_search_tree.py rename to thealgorithms/data_structures/binary_tree/binary_search_tree.py diff --git a/data_structures/binary tree/fenwick_tree.py b/thealgorithms/data_structures/binary_tree/fenwick_tree.py similarity index 100% rename from data_structures/binary tree/fenwick_tree.py rename to thealgorithms/data_structures/binary_tree/fenwick_tree.py diff --git a/data_structures/binary tree/lazy_segment_tree.py b/thealgorithms/data_structures/binary_tree/lazy_segment_tree.py similarity index 100% rename from data_structures/binary tree/lazy_segment_tree.py rename to thealgorithms/data_structures/binary_tree/lazy_segment_tree.py diff --git a/data_structures/binary tree/segment_tree.py b/thealgorithms/data_structures/binary_tree/segment_tree.py similarity index 100% rename from data_structures/binary tree/segment_tree.py rename to thealgorithms/data_structures/binary_tree/segment_tree.py diff --git a/thealgorithms/data_structures/graph/__init__.py b/thealgorithms/data_structures/graph/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/graph/bellman_ford.py b/thealgorithms/data_structures/graph/bellman_ford.py similarity index 100% rename from data_structures/graph/bellman_ford.py rename to thealgorithms/data_structures/graph/bellman_ford.py diff --git a/data_structures/graph/breadth_first_search.py b/thealgorithms/data_structures/graph/breadth_first_search.py similarity index 100% rename from data_structures/graph/breadth_first_search.py rename to thealgorithms/data_structures/graph/breadth_first_search.py diff --git a/data_structures/graph/depth_first_search.py b/thealgorithms/data_structures/graph/depth_first_search.py similarity index 100% rename from data_structures/graph/depth_first_search.py rename to thealgorithms/data_structures/graph/depth_first_search.py diff --git a/data_structures/graph/dijkstra.py b/thealgorithms/data_structures/graph/dijkstra.py similarity index 100% rename from data_structures/graph/dijkstra.py rename to thealgorithms/data_structures/graph/dijkstra.py diff --git a/data_structures/graph/dijkstra_algorithm.py b/thealgorithms/data_structures/graph/dijkstra_algorithm.py similarity index 100% rename from data_structures/graph/dijkstra_algorithm.py rename to thealgorithms/data_structures/graph/dijkstra_algorithm.py diff --git a/data_structures/graph/even_tree.py b/thealgorithms/data_structures/graph/even_tree.py similarity index 100% rename from data_structures/graph/even_tree.py rename to thealgorithms/data_structures/graph/even_tree.py diff --git a/data_structures/graph/floyd_warshall.py b/thealgorithms/data_structures/graph/floyd_warshall.py similarity index 100% rename from data_structures/graph/floyd_warshall.py rename to thealgorithms/data_structures/graph/floyd_warshall.py diff --git a/data_structures/graph/graph.py b/thealgorithms/data_structures/graph/graph.py similarity index 100% rename from data_structures/graph/graph.py rename to thealgorithms/data_structures/graph/graph.py diff --git a/data_structures/graph/graph_list.py b/thealgorithms/data_structures/graph/graph_list.py similarity index 100% rename from data_structures/graph/graph_list.py rename to thealgorithms/data_structures/graph/graph_list.py diff --git a/data_structures/graph/graph_matrix.py b/thealgorithms/data_structures/graph/graph_matrix.py similarity index 100% rename from data_structures/graph/graph_matrix.py rename to thealgorithms/data_structures/graph/graph_matrix.py diff --git a/data_structures/hashing/__init__.py b/thealgorithms/data_structures/hashing/__init__.py similarity index 100% rename from data_structures/hashing/__init__.py rename to thealgorithms/data_structures/hashing/__init__.py diff --git a/data_structures/hashing/double_hash.py b/thealgorithms/data_structures/hashing/double_hash.py similarity index 100% rename from data_structures/hashing/double_hash.py rename to thealgorithms/data_structures/hashing/double_hash.py diff --git a/data_structures/hashing/hash_table.py b/thealgorithms/data_structures/hashing/hash_table.py similarity index 100% rename from data_structures/hashing/hash_table.py rename to thealgorithms/data_structures/hashing/hash_table.py diff --git a/data_structures/hashing/hash_table_with_linked_list.py b/thealgorithms/data_structures/hashing/hash_table_with_linked_list.py similarity index 100% rename from data_structures/hashing/hash_table_with_linked_list.py rename to thealgorithms/data_structures/hashing/hash_table_with_linked_list.py diff --git a/thealgorithms/data_structures/hashing/number_theory/__init__.py b/thealgorithms/data_structures/hashing/number_theory/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/hashing/number_theory/prime_numbers.py b/thealgorithms/data_structures/hashing/number_theory/prime_numbers.py similarity index 100% rename from data_structures/hashing/number_theory/prime_numbers.py rename to thealgorithms/data_structures/hashing/number_theory/prime_numbers.py diff --git a/data_structures/hashing/quadratic_probing.py b/thealgorithms/data_structures/hashing/quadratic_probing.py similarity index 100% rename from data_structures/hashing/quadratic_probing.py rename to thealgorithms/data_structures/hashing/quadratic_probing.py diff --git a/thealgorithms/data_structures/heap/__init__.py b/thealgorithms/data_structures/heap/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/heap/heap.py b/thealgorithms/data_structures/heap/heap.py similarity index 100% rename from data_structures/heap/heap.py rename to thealgorithms/data_structures/heap/heap.py diff --git a/data_structures/linked_list/__init__.py b/thealgorithms/data_structures/linked_list/__init__.py similarity index 100% rename from data_structures/linked_list/__init__.py rename to thealgorithms/data_structures/linked_list/__init__.py diff --git a/data_structures/linked_list/doubly_linked_list.py b/thealgorithms/data_structures/linked_list/doubly_linked_list.py similarity index 100% rename from data_structures/linked_list/doubly_linked_list.py rename to thealgorithms/data_structures/linked_list/doubly_linked_list.py diff --git a/data_structures/linked_list/singly_linked_list.py b/thealgorithms/data_structures/linked_list/singly_linked_list.py similarity index 100% rename from data_structures/linked_list/singly_linked_list.py rename to thealgorithms/data_structures/linked_list/singly_linked_list.py diff --git a/data_structures/linked_list/swapNodes.py b/thealgorithms/data_structures/linked_list/swapNodes.py similarity index 100% rename from data_structures/linked_list/swapNodes.py rename to thealgorithms/data_structures/linked_list/swapNodes.py diff --git a/thealgorithms/data_structures/queue/__init__.py b/thealgorithms/data_structures/queue/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/queue/deqeue.py b/thealgorithms/data_structures/queue/deqeue.py similarity index 100% rename from data_structures/queue/deqeue.py rename to thealgorithms/data_structures/queue/deqeue.py diff --git a/data_structures/queue/queue_on_list.py b/thealgorithms/data_structures/queue/queue_on_list.py similarity index 100% rename from data_structures/queue/queue_on_list.py rename to thealgorithms/data_structures/queue/queue_on_list.py diff --git a/data_structures/queue/queue_on_pseudo_stack.py b/thealgorithms/data_structures/queue/queue_on_pseudo_stack.py similarity index 100% rename from data_structures/queue/queue_on_pseudo_stack.py rename to thealgorithms/data_structures/queue/queue_on_pseudo_stack.py diff --git a/data_structures/stacks/__init__.py b/thealgorithms/data_structures/stacks/__init__.py similarity index 100% rename from data_structures/stacks/__init__.py rename to thealgorithms/data_structures/stacks/__init__.py diff --git a/data_structures/stacks/balanced_parentheses.py b/thealgorithms/data_structures/stacks/balanced_parentheses.py similarity index 100% rename from data_structures/stacks/balanced_parentheses.py rename to thealgorithms/data_structures/stacks/balanced_parentheses.py diff --git a/data_structures/stacks/infix_to_postfix_conversion.py b/thealgorithms/data_structures/stacks/infix_to_postfix_conversion.py similarity index 100% rename from data_structures/stacks/infix_to_postfix_conversion.py rename to thealgorithms/data_structures/stacks/infix_to_postfix_conversion.py diff --git a/data_structures/stacks/next.py b/thealgorithms/data_structures/stacks/next.py similarity index 100% rename from data_structures/stacks/next.py rename to thealgorithms/data_structures/stacks/next.py diff --git a/data_structures/stacks/stack.py b/thealgorithms/data_structures/stacks/stack.py similarity index 100% rename from data_structures/stacks/stack.py rename to thealgorithms/data_structures/stacks/stack.py diff --git a/data_structures/stacks/stock_span_problem.py b/thealgorithms/data_structures/stacks/stock_span_problem.py similarity index 100% rename from data_structures/stacks/stock_span_problem.py rename to thealgorithms/data_structures/stacks/stock_span_problem.py diff --git a/thealgorithms/data_structures/trie/__init__.py b/thealgorithms/data_structures/trie/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/trie/trie.py b/thealgorithms/data_structures/trie/trie.py similarity index 100% rename from data_structures/trie/trie.py rename to thealgorithms/data_structures/trie/trie.py diff --git a/thealgorithms/data_structures/union_find/__init__.py b/thealgorithms/data_structures/union_find/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/data_structures/union_find/tests_union_find.py b/thealgorithms/data_structures/union_find/tests_union_find.py similarity index 100% rename from data_structures/union_find/tests_union_find.py rename to thealgorithms/data_structures/union_find/tests_union_find.py diff --git a/data_structures/union_find/union_find.py b/thealgorithms/data_structures/union_find/union_find.py similarity index 100% rename from data_structures/union_find/union_find.py rename to thealgorithms/data_structures/union_find/union_find.py diff --git a/thealgorithms/digital_image_processing/__init__.py b/thealgorithms/digital_image_processing/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/thealgorithms/digital_image_processing/filters/__init__.py b/thealgorithms/digital_image_processing/filters/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/digital_image_processing/filters/median_filter.py b/thealgorithms/digital_image_processing/filters/median_filter.py similarity index 100% rename from digital_image_processing/filters/median_filter.py rename to thealgorithms/digital_image_processing/filters/median_filter.py diff --git a/dynamic_programming/FractionalKnapsack.py b/thealgorithms/dynamic_programming/FractionalKnapsack.py similarity index 100% rename from dynamic_programming/FractionalKnapsack.py rename to thealgorithms/dynamic_programming/FractionalKnapsack.py diff --git a/thealgorithms/dynamic_programming/__init__.py b/thealgorithms/dynamic_programming/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/dynamic_programming/abbreviation.py b/thealgorithms/dynamic_programming/abbreviation.py similarity index 100% rename from dynamic_programming/abbreviation.py rename to thealgorithms/dynamic_programming/abbreviation.py diff --git a/dynamic_programming/coin_change.py b/thealgorithms/dynamic_programming/coin_change.py similarity index 100% rename from dynamic_programming/coin_change.py rename to thealgorithms/dynamic_programming/coin_change.py diff --git a/dynamic_programming/edit_distance.py b/thealgorithms/dynamic_programming/edit_distance.py similarity index 100% rename from dynamic_programming/edit_distance.py rename to thealgorithms/dynamic_programming/edit_distance.py diff --git a/dynamic_programming/fastfibonacci.py b/thealgorithms/dynamic_programming/fastfibonacci.py similarity index 100% rename from dynamic_programming/fastfibonacci.py rename to thealgorithms/dynamic_programming/fastfibonacci.py diff --git a/dynamic_programming/fibonacci.py b/thealgorithms/dynamic_programming/fibonacci.py similarity index 100% rename from dynamic_programming/fibonacci.py rename to thealgorithms/dynamic_programming/fibonacci.py diff --git a/dynamic_programming/floyd_warshall.py b/thealgorithms/dynamic_programming/floyd_warshall.py similarity index 100% rename from dynamic_programming/floyd_warshall.py rename to thealgorithms/dynamic_programming/floyd_warshall.py diff --git a/dynamic_programming/integer_partition.py b/thealgorithms/dynamic_programming/integer_partition.py similarity index 100% rename from dynamic_programming/integer_partition.py rename to thealgorithms/dynamic_programming/integer_partition.py diff --git a/dynamic_programming/k_means_clustering_tensorflow.py b/thealgorithms/dynamic_programming/k_means_clustering_tensorflow.py similarity index 100% rename from dynamic_programming/k_means_clustering_tensorflow.py rename to thealgorithms/dynamic_programming/k_means_clustering_tensorflow.py diff --git a/dynamic_programming/knapsack.py b/thealgorithms/dynamic_programming/knapsack.py similarity index 100% rename from dynamic_programming/knapsack.py rename to thealgorithms/dynamic_programming/knapsack.py diff --git a/dynamic_programming/longest_common_subsequence.py b/thealgorithms/dynamic_programming/longest_common_subsequence.py similarity index 100% rename from dynamic_programming/longest_common_subsequence.py rename to thealgorithms/dynamic_programming/longest_common_subsequence.py diff --git a/dynamic_programming/longest_increasing_subsequence.py b/thealgorithms/dynamic_programming/longest_increasing_subsequence.py similarity index 100% rename from dynamic_programming/longest_increasing_subsequence.py rename to thealgorithms/dynamic_programming/longest_increasing_subsequence.py diff --git a/dynamic_programming/longest_increasing_subsequence_O(nlogn).py b/thealgorithms/dynamic_programming/longest_increasing_subsequence_O(nlogn).py similarity index 100% rename from dynamic_programming/longest_increasing_subsequence_O(nlogn).py rename to thealgorithms/dynamic_programming/longest_increasing_subsequence_O(nlogn).py diff --git a/dynamic_programming/longest_sub_array.py b/thealgorithms/dynamic_programming/longest_sub_array.py similarity index 100% rename from dynamic_programming/longest_sub_array.py rename to thealgorithms/dynamic_programming/longest_sub_array.py diff --git a/dynamic_programming/matrix_chain_order.py b/thealgorithms/dynamic_programming/matrix_chain_order.py similarity index 100% rename from dynamic_programming/matrix_chain_order.py rename to thealgorithms/dynamic_programming/matrix_chain_order.py diff --git a/dynamic_programming/max_sub_array.py b/thealgorithms/dynamic_programming/max_sub_array.py similarity index 100% rename from dynamic_programming/max_sub_array.py rename to thealgorithms/dynamic_programming/max_sub_array.py diff --git a/dynamic_programming/minimum_partition.py b/thealgorithms/dynamic_programming/minimum_partition.py similarity index 100% rename from dynamic_programming/minimum_partition.py rename to thealgorithms/dynamic_programming/minimum_partition.py diff --git a/dynamic_programming/rod_cutting.py b/thealgorithms/dynamic_programming/rod_cutting.py similarity index 100% rename from dynamic_programming/rod_cutting.py rename to thealgorithms/dynamic_programming/rod_cutting.py diff --git a/factorial_python.py b/thealgorithms/factorial_python.py similarity index 100% rename from factorial_python.py rename to thealgorithms/factorial_python.py diff --git a/thealgorithms/file_transfer_protocol/__init__.py b/thealgorithms/file_transfer_protocol/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/file_transfer_protocol/ftp_client_server.py b/thealgorithms/file_transfer_protocol/ftp_client_server.py similarity index 100% rename from file_transfer_protocol/ftp_client_server.py rename to thealgorithms/file_transfer_protocol/ftp_client_server.py diff --git a/file_transfer_protocol/ftp_send_receive.py b/thealgorithms/file_transfer_protocol/ftp_send_receive.py similarity index 100% rename from file_transfer_protocol/ftp_send_receive.py rename to thealgorithms/file_transfer_protocol/ftp_send_receive.py diff --git a/graphs/Directed and Undirected (Weighted) Graph.py b/thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py similarity index 100% rename from graphs/Directed and Undirected (Weighted) Graph.py rename to thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py diff --git a/thealgorithms/graphs/__init__.py b/thealgorithms/graphs/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/graphs/a_star.py b/thealgorithms/graphs/a_star.py similarity index 100% rename from graphs/a_star.py rename to thealgorithms/graphs/a_star.py diff --git a/graphs/articulation_points.py b/thealgorithms/graphs/articulation_points.py similarity index 100% rename from graphs/articulation_points.py rename to thealgorithms/graphs/articulation_points.py diff --git a/graphs/basic_graphs.py b/thealgorithms/graphs/basic_graphs.py similarity index 100% rename from graphs/basic_graphs.py rename to thealgorithms/graphs/basic_graphs.py diff --git a/graphs/check_bipartite_graph_bfs.py b/thealgorithms/graphs/check_bipartite_graph_bfs.py similarity index 100% rename from graphs/check_bipartite_graph_bfs.py rename to thealgorithms/graphs/check_bipartite_graph_bfs.py diff --git a/graphs/dijkstra.py b/thealgorithms/graphs/dijkstra.py similarity index 100% rename from graphs/dijkstra.py rename to thealgorithms/graphs/dijkstra.py diff --git a/graphs/finding_bridges.py b/thealgorithms/graphs/finding_bridges.py similarity index 100% rename from graphs/finding_bridges.py rename to thealgorithms/graphs/finding_bridges.py diff --git a/graphs/kahns_algorithm_long.py b/thealgorithms/graphs/kahns_algorithm_long.py similarity index 100% rename from graphs/kahns_algorithm_long.py rename to thealgorithms/graphs/kahns_algorithm_long.py diff --git a/graphs/kahns_algorithm_topo.py b/thealgorithms/graphs/kahns_algorithm_topo.py similarity index 100% rename from graphs/kahns_algorithm_topo.py rename to thealgorithms/graphs/kahns_algorithm_topo.py diff --git a/graphs/minimum_spanning_tree_kruskal.py b/thealgorithms/graphs/minimum_spanning_tree_kruskal.py similarity index 100% rename from graphs/minimum_spanning_tree_kruskal.py rename to thealgorithms/graphs/minimum_spanning_tree_kruskal.py diff --git a/graphs/minimum_spanning_tree_prims.py b/thealgorithms/graphs/minimum_spanning_tree_prims.py similarity index 100% rename from graphs/minimum_spanning_tree_prims.py rename to thealgorithms/graphs/minimum_spanning_tree_prims.py diff --git a/graphs/multi_hueristic_astar.py b/thealgorithms/graphs/multi_hueristic_astar.py similarity index 100% rename from graphs/multi_hueristic_astar.py rename to thealgorithms/graphs/multi_hueristic_astar.py diff --git a/graphs/scc_kosaraju.py b/thealgorithms/graphs/scc_kosaraju.py similarity index 100% rename from graphs/scc_kosaraju.py rename to thealgorithms/graphs/scc_kosaraju.py diff --git a/graphs/tarjans_scc.py b/thealgorithms/graphs/tarjans_scc.py similarity index 100% rename from graphs/tarjans_scc.py rename to thealgorithms/graphs/tarjans_scc.py diff --git a/thealgorithms/hashes/__init__.py b/thealgorithms/hashes/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/hashes/chaos_machine.py b/thealgorithms/hashes/chaos_machine.py similarity index 100% rename from hashes/chaos_machine.py rename to thealgorithms/hashes/chaos_machine.py diff --git a/hashes/md5.py b/thealgorithms/hashes/md5.py similarity index 100% rename from hashes/md5.py rename to thealgorithms/hashes/md5.py diff --git a/hashes/sha1.py b/thealgorithms/hashes/sha1.py similarity index 100% rename from hashes/sha1.py rename to thealgorithms/hashes/sha1.py diff --git a/linear_algebra_python/README.md b/thealgorithms/linear_algebra_python/README.md similarity index 100% rename from linear_algebra_python/README.md rename to thealgorithms/linear_algebra_python/README.md diff --git a/thealgorithms/linear_algebra_python/src/__init__.py b/thealgorithms/linear_algebra_python/src/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/linear_algebra_python/src/lib.py b/thealgorithms/linear_algebra_python/src/lib.py similarity index 100% rename from linear_algebra_python/src/lib.py rename to thealgorithms/linear_algebra_python/src/lib.py diff --git a/linear_algebra_python/src/tests.py b/thealgorithms/linear_algebra_python/src/tests.py similarity index 100% rename from linear_algebra_python/src/tests.py rename to thealgorithms/linear_algebra_python/src/tests.py diff --git a/machine_learning/NaiveBayes.ipynb b/thealgorithms/machine_learning/NaiveBayes.ipynb similarity index 100% rename from machine_learning/NaiveBayes.ipynb rename to thealgorithms/machine_learning/NaiveBayes.ipynb diff --git a/machine_learning/Random Forest Classification/Random Forest Classifier.ipynb b/thealgorithms/machine_learning/Random_Forest_Classification/Random Forest Classifier.ipynb similarity index 100% rename from machine_learning/Random Forest Classification/Random Forest Classifier.ipynb rename to thealgorithms/machine_learning/Random_Forest_Classification/Random Forest Classifier.ipynb diff --git a/machine_learning/Random Forest Classification/Social_Network_Ads.csv b/thealgorithms/machine_learning/Random_Forest_Classification/Social_Network_Ads.csv similarity index 100% rename from machine_learning/Random Forest Classification/Social_Network_Ads.csv rename to thealgorithms/machine_learning/Random_Forest_Classification/Social_Network_Ads.csv diff --git a/thealgorithms/machine_learning/Random_Forest_Classification/__init__.py b/thealgorithms/machine_learning/Random_Forest_Classification/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/machine_learning/Random Forest Classification/random_forest_classification.py b/thealgorithms/machine_learning/Random_Forest_Classification/random_forest_classification.py similarity index 100% rename from machine_learning/Random Forest Classification/random_forest_classification.py rename to thealgorithms/machine_learning/Random_Forest_Classification/random_forest_classification.py diff --git a/machine_learning/Random Forest Regression/Position_Salaries.csv b/thealgorithms/machine_learning/Random_Forest_Regression/Position_Salaries.csv similarity index 100% rename from machine_learning/Random Forest Regression/Position_Salaries.csv rename to thealgorithms/machine_learning/Random_Forest_Regression/Position_Salaries.csv diff --git a/machine_learning/Random Forest Regression/Random Forest Regression.ipynb b/thealgorithms/machine_learning/Random_Forest_Regression/Random Forest Regression.ipynb similarity index 100% rename from machine_learning/Random Forest Regression/Random Forest Regression.ipynb rename to thealgorithms/machine_learning/Random_Forest_Regression/Random Forest Regression.ipynb diff --git a/thealgorithms/machine_learning/Random_Forest_Regression/__init__.py b/thealgorithms/machine_learning/Random_Forest_Regression/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/machine_learning/Random Forest Regression/random_forest_regression.py b/thealgorithms/machine_learning/Random_Forest_Regression/random_forest_regression.py similarity index 100% rename from machine_learning/Random Forest Regression/random_forest_regression.py rename to thealgorithms/machine_learning/Random_Forest_Regression/random_forest_regression.py diff --git a/thealgorithms/machine_learning/__init__.py b/thealgorithms/machine_learning/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/machine_learning/decision_tree.py b/thealgorithms/machine_learning/decision_tree.py similarity index 100% rename from machine_learning/decision_tree.py rename to thealgorithms/machine_learning/decision_tree.py diff --git a/machine_learning/gradient_descent.py b/thealgorithms/machine_learning/gradient_descent.py similarity index 100% rename from machine_learning/gradient_descent.py rename to thealgorithms/machine_learning/gradient_descent.py diff --git a/machine_learning/k_means_clust.py b/thealgorithms/machine_learning/k_means_clust.py similarity index 100% rename from machine_learning/k_means_clust.py rename to thealgorithms/machine_learning/k_means_clust.py diff --git a/machine_learning/linear_regression.py b/thealgorithms/machine_learning/linear_regression.py similarity index 100% rename from machine_learning/linear_regression.py rename to thealgorithms/machine_learning/linear_regression.py diff --git a/machine_learning/logistic_regression.py b/thealgorithms/machine_learning/logistic_regression.py similarity index 100% rename from machine_learning/logistic_regression.py rename to thealgorithms/machine_learning/logistic_regression.py diff --git a/machine_learning/perceptron.py b/thealgorithms/machine_learning/perceptron.py similarity index 100% rename from machine_learning/perceptron.py rename to thealgorithms/machine_learning/perceptron.py diff --git a/machine_learning/reuters_one_vs_rest_classifier.ipynb b/thealgorithms/machine_learning/reuters_one_vs_rest_classifier.ipynb similarity index 100% rename from machine_learning/reuters_one_vs_rest_classifier.ipynb rename to thealgorithms/machine_learning/reuters_one_vs_rest_classifier.ipynb diff --git a/machine_learning/scoring_functions.py b/thealgorithms/machine_learning/scoring_functions.py similarity index 100% rename from machine_learning/scoring_functions.py rename to thealgorithms/machine_learning/scoring_functions.py diff --git a/maths/PrimeCheck.py b/thealgorithms/maths/PrimeCheck.py similarity index 100% rename from maths/PrimeCheck.py rename to thealgorithms/maths/PrimeCheck.py diff --git a/thealgorithms/maths/__init__.py b/thealgorithms/maths/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/maths/basic_maths.py b/thealgorithms/maths/basic_maths.py similarity index 100% rename from maths/basic_maths.py rename to thealgorithms/maths/basic_maths.py diff --git a/maths/fibonacci_sequence_recursion.py b/thealgorithms/maths/fibonacci_sequence_recursion.py similarity index 100% rename from maths/fibonacci_sequence_recursion.py rename to thealgorithms/maths/fibonacci_sequence_recursion.py diff --git a/maths/greater_common_divisor.py b/thealgorithms/maths/greater_common_divisor.py similarity index 100% rename from maths/greater_common_divisor.py rename to thealgorithms/maths/greater_common_divisor.py diff --git a/maths/modular_exponential.py b/thealgorithms/maths/modular_exponential.py similarity index 100% rename from maths/modular_exponential.py rename to thealgorithms/maths/modular_exponential.py diff --git a/maths/newton_raphson.py b/thealgorithms/maths/newton_raphson.py similarity index 100% rename from maths/newton_raphson.py rename to thealgorithms/maths/newton_raphson.py diff --git a/maths/segmented_sieve.py b/thealgorithms/maths/segmented_sieve.py similarity index 100% rename from maths/segmented_sieve.py rename to thealgorithms/maths/segmented_sieve.py diff --git a/maths/sieve_of_eratosthenes.py b/thealgorithms/maths/sieve_of_eratosthenes.py similarity index 100% rename from maths/sieve_of_eratosthenes.py rename to thealgorithms/maths/sieve_of_eratosthenes.py diff --git a/maths/simpson_rule.py b/thealgorithms/maths/simpson_rule.py similarity index 100% rename from maths/simpson_rule.py rename to thealgorithms/maths/simpson_rule.py diff --git a/maths/trapezoidal_rule.py b/thealgorithms/maths/trapezoidal_rule.py similarity index 100% rename from maths/trapezoidal_rule.py rename to thealgorithms/maths/trapezoidal_rule.py diff --git a/thealgorithms/matrix/__init__.py b/thealgorithms/matrix/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/matrix/matrix_multiplication_addition.py b/thealgorithms/matrix/matrix_multiplication_addition.py similarity index 100% rename from matrix/matrix_multiplication_addition.py rename to thealgorithms/matrix/matrix_multiplication_addition.py diff --git a/thealgorithms/networking_flow/__init__.py b/thealgorithms/networking_flow/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/networking_flow/ford_fulkerson.py b/thealgorithms/networking_flow/ford_fulkerson.py similarity index 100% rename from networking_flow/ford_fulkerson.py rename to thealgorithms/networking_flow/ford_fulkerson.py diff --git a/networking_flow/minimum_cut.py b/thealgorithms/networking_flow/minimum_cut.py similarity index 100% rename from networking_flow/minimum_cut.py rename to thealgorithms/networking_flow/minimum_cut.py diff --git a/thealgorithms/neural_network/__init__.py b/thealgorithms/neural_network/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/neural_network/bpnn.py b/thealgorithms/neural_network/bpnn.py similarity index 100% rename from neural_network/bpnn.py rename to thealgorithms/neural_network/bpnn.py diff --git a/neural_network/convolution_neural_network.py b/thealgorithms/neural_network/convolution_neural_network.py similarity index 100% rename from neural_network/convolution_neural_network.py rename to thealgorithms/neural_network/convolution_neural_network.py diff --git a/neural_network/fcn.ipynb b/thealgorithms/neural_network/fcn.ipynb similarity index 100% rename from neural_network/fcn.ipynb rename to thealgorithms/neural_network/fcn.ipynb diff --git a/neural_network/perceptron.py b/thealgorithms/neural_network/perceptron.py similarity index 100% rename from neural_network/perceptron.py rename to thealgorithms/neural_network/perceptron.py diff --git a/thealgorithms/other/__init__.py b/thealgorithms/other/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/other/anagrams.py b/thealgorithms/other/anagrams.py similarity index 100% rename from other/anagrams.py rename to thealgorithms/other/anagrams.py diff --git a/other/binary_exponentiation.py b/thealgorithms/other/binary_exponentiation.py similarity index 100% rename from other/binary_exponentiation.py rename to thealgorithms/other/binary_exponentiation.py diff --git a/other/binary_exponentiation_2.py b/thealgorithms/other/binary_exponentiation_2.py similarity index 100% rename from other/binary_exponentiation_2.py rename to thealgorithms/other/binary_exponentiation_2.py diff --git a/other/detecting_english_programmatically.py b/thealgorithms/other/detecting_english_programmatically.py similarity index 100% rename from other/detecting_english_programmatically.py rename to thealgorithms/other/detecting_english_programmatically.py diff --git a/other/dictionary.txt b/thealgorithms/other/dictionary.txt similarity index 100% rename from other/dictionary.txt rename to thealgorithms/other/dictionary.txt diff --git a/other/euclidean_gcd.py b/thealgorithms/other/euclidean_gcd.py similarity index 100% rename from other/euclidean_gcd.py rename to thealgorithms/other/euclidean_gcd.py diff --git a/other/findingPrimes.py b/thealgorithms/other/findingPrimes.py similarity index 100% rename from other/findingPrimes.py rename to thealgorithms/other/findingPrimes.py diff --git a/other/fischer_yates_shuffle.py b/thealgorithms/other/fischer_yates_shuffle.py similarity index 100% rename from other/fischer_yates_shuffle.py rename to thealgorithms/other/fischer_yates_shuffle.py diff --git a/other/frequency_finder.py b/thealgorithms/other/frequency_finder.py similarity index 100% rename from other/frequency_finder.py rename to thealgorithms/other/frequency_finder.py diff --git a/thealgorithms/other/game_of_life/__init__.py b/thealgorithms/other/game_of_life/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/other/game_of_life/game_o_life.py b/thealgorithms/other/game_of_life/game_o_life.py similarity index 100% rename from other/game_of_life/game_o_life.py rename to thealgorithms/other/game_of_life/game_o_life.py diff --git a/other/game_of_life/sample.gif b/thealgorithms/other/game_of_life/sample.gif similarity index 100% rename from other/game_of_life/sample.gif rename to thealgorithms/other/game_of_life/sample.gif diff --git a/other/linear_congruential_generator.py b/thealgorithms/other/linear_congruential_generator.py similarity index 100% rename from other/linear_congruential_generator.py rename to thealgorithms/other/linear_congruential_generator.py diff --git a/other/nested_brackets.py b/thealgorithms/other/nested_brackets.py similarity index 100% rename from other/nested_brackets.py rename to thealgorithms/other/nested_brackets.py diff --git a/other/palindrome.py b/thealgorithms/other/palindrome.py similarity index 100% rename from other/palindrome.py rename to thealgorithms/other/palindrome.py diff --git a/other/password_generator.py b/thealgorithms/other/password_generator.py similarity index 100% rename from other/password_generator.py rename to thealgorithms/other/password_generator.py diff --git a/other/primelib.py b/thealgorithms/other/primelib.py similarity index 100% rename from other/primelib.py rename to thealgorithms/other/primelib.py diff --git a/other/sierpinski_triangle.py b/thealgorithms/other/sierpinski_triangle.py similarity index 100% rename from other/sierpinski_triangle.py rename to thealgorithms/other/sierpinski_triangle.py diff --git a/other/tower_of_hanoi.py b/thealgorithms/other/tower_of_hanoi.py similarity index 100% rename from other/tower_of_hanoi.py rename to thealgorithms/other/tower_of_hanoi.py diff --git a/other/two_sum.py b/thealgorithms/other/two_sum.py similarity index 100% rename from other/two_sum.py rename to thealgorithms/other/two_sum.py diff --git a/other/word_patterns.py b/thealgorithms/other/word_patterns.py similarity index 100% rename from other/word_patterns.py rename to thealgorithms/other/word_patterns.py diff --git a/other/words b/thealgorithms/other/words similarity index 100% rename from other/words rename to thealgorithms/other/words diff --git a/project_euler/README.md b/thealgorithms/project_euler/README.md similarity index 100% rename from project_euler/README.md rename to thealgorithms/project_euler/README.md diff --git a/thealgorithms/project_euler/problem_01/__init__.py b/thealgorithms/project_euler/problem_01/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_01/sol1.py b/thealgorithms/project_euler/problem_01/sol1.py similarity index 100% rename from project_euler/problem_01/sol1.py rename to thealgorithms/project_euler/problem_01/sol1.py diff --git a/project_euler/problem_01/sol2.py b/thealgorithms/project_euler/problem_01/sol2.py similarity index 100% rename from project_euler/problem_01/sol2.py rename to thealgorithms/project_euler/problem_01/sol2.py diff --git a/project_euler/problem_01/sol3.py b/thealgorithms/project_euler/problem_01/sol3.py similarity index 100% rename from project_euler/problem_01/sol3.py rename to thealgorithms/project_euler/problem_01/sol3.py diff --git a/project_euler/problem_01/sol4.py b/thealgorithms/project_euler/problem_01/sol4.py similarity index 100% rename from project_euler/problem_01/sol4.py rename to thealgorithms/project_euler/problem_01/sol4.py diff --git a/project_euler/problem_01/sol5.py b/thealgorithms/project_euler/problem_01/sol5.py similarity index 100% rename from project_euler/problem_01/sol5.py rename to thealgorithms/project_euler/problem_01/sol5.py diff --git a/thealgorithms/project_euler/problem_02/__init__.py b/thealgorithms/project_euler/problem_02/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_02/sol1.py b/thealgorithms/project_euler/problem_02/sol1.py similarity index 100% rename from project_euler/problem_02/sol1.py rename to thealgorithms/project_euler/problem_02/sol1.py diff --git a/project_euler/problem_02/sol2.py b/thealgorithms/project_euler/problem_02/sol2.py similarity index 100% rename from project_euler/problem_02/sol2.py rename to thealgorithms/project_euler/problem_02/sol2.py diff --git a/project_euler/problem_02/sol3.py b/thealgorithms/project_euler/problem_02/sol3.py similarity index 100% rename from project_euler/problem_02/sol3.py rename to thealgorithms/project_euler/problem_02/sol3.py diff --git a/thealgorithms/project_euler/problem_03/__init__.py b/thealgorithms/project_euler/problem_03/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_03/sol1.py b/thealgorithms/project_euler/problem_03/sol1.py similarity index 100% rename from project_euler/problem_03/sol1.py rename to thealgorithms/project_euler/problem_03/sol1.py diff --git a/project_euler/problem_03/sol2.py b/thealgorithms/project_euler/problem_03/sol2.py similarity index 100% rename from project_euler/problem_03/sol2.py rename to thealgorithms/project_euler/problem_03/sol2.py diff --git a/thealgorithms/project_euler/problem_04/__init__.py b/thealgorithms/project_euler/problem_04/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_04/sol1.py b/thealgorithms/project_euler/problem_04/sol1.py similarity index 100% rename from project_euler/problem_04/sol1.py rename to thealgorithms/project_euler/problem_04/sol1.py diff --git a/project_euler/problem_04/sol2.py b/thealgorithms/project_euler/problem_04/sol2.py similarity index 100% rename from project_euler/problem_04/sol2.py rename to thealgorithms/project_euler/problem_04/sol2.py diff --git a/thealgorithms/project_euler/problem_05/__init__.py b/thealgorithms/project_euler/problem_05/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_05/sol1.py b/thealgorithms/project_euler/problem_05/sol1.py similarity index 100% rename from project_euler/problem_05/sol1.py rename to thealgorithms/project_euler/problem_05/sol1.py diff --git a/project_euler/problem_05/sol2.py b/thealgorithms/project_euler/problem_05/sol2.py similarity index 100% rename from project_euler/problem_05/sol2.py rename to thealgorithms/project_euler/problem_05/sol2.py diff --git a/thealgorithms/project_euler/problem_06/__init__.py b/thealgorithms/project_euler/problem_06/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_06/sol1.py b/thealgorithms/project_euler/problem_06/sol1.py similarity index 100% rename from project_euler/problem_06/sol1.py rename to thealgorithms/project_euler/problem_06/sol1.py diff --git a/project_euler/problem_06/sol2.py b/thealgorithms/project_euler/problem_06/sol2.py similarity index 100% rename from project_euler/problem_06/sol2.py rename to thealgorithms/project_euler/problem_06/sol2.py diff --git a/project_euler/problem_06/sol3.py b/thealgorithms/project_euler/problem_06/sol3.py similarity index 100% rename from project_euler/problem_06/sol3.py rename to thealgorithms/project_euler/problem_06/sol3.py diff --git a/thealgorithms/project_euler/problem_07/__init__.py b/thealgorithms/project_euler/problem_07/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_07/sol1.py b/thealgorithms/project_euler/problem_07/sol1.py similarity index 100% rename from project_euler/problem_07/sol1.py rename to thealgorithms/project_euler/problem_07/sol1.py diff --git a/project_euler/problem_07/sol2.py b/thealgorithms/project_euler/problem_07/sol2.py similarity index 100% rename from project_euler/problem_07/sol2.py rename to thealgorithms/project_euler/problem_07/sol2.py diff --git a/project_euler/problem_07/sol3.py b/thealgorithms/project_euler/problem_07/sol3.py similarity index 100% rename from project_euler/problem_07/sol3.py rename to thealgorithms/project_euler/problem_07/sol3.py diff --git a/thealgorithms/project_euler/problem_08/__init__.py b/thealgorithms/project_euler/problem_08/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_08/sol1.py b/thealgorithms/project_euler/problem_08/sol1.py similarity index 100% rename from project_euler/problem_08/sol1.py rename to thealgorithms/project_euler/problem_08/sol1.py diff --git a/project_euler/problem_08/sol2.py b/thealgorithms/project_euler/problem_08/sol2.py similarity index 100% rename from project_euler/problem_08/sol2.py rename to thealgorithms/project_euler/problem_08/sol2.py diff --git a/thealgorithms/project_euler/problem_09/__init__.py b/thealgorithms/project_euler/problem_09/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_09/sol1.py b/thealgorithms/project_euler/problem_09/sol1.py similarity index 100% rename from project_euler/problem_09/sol1.py rename to thealgorithms/project_euler/problem_09/sol1.py diff --git a/project_euler/problem_09/sol2.py b/thealgorithms/project_euler/problem_09/sol2.py similarity index 100% rename from project_euler/problem_09/sol2.py rename to thealgorithms/project_euler/problem_09/sol2.py diff --git a/project_euler/problem_09/sol3.py b/thealgorithms/project_euler/problem_09/sol3.py similarity index 100% rename from project_euler/problem_09/sol3.py rename to thealgorithms/project_euler/problem_09/sol3.py diff --git a/thealgorithms/project_euler/problem_10/__init__.py b/thealgorithms/project_euler/problem_10/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_10/sol1.py b/thealgorithms/project_euler/problem_10/sol1.py similarity index 100% rename from project_euler/problem_10/sol1.py rename to thealgorithms/project_euler/problem_10/sol1.py diff --git a/project_euler/problem_10/sol2.py b/thealgorithms/project_euler/problem_10/sol2.py similarity index 100% rename from project_euler/problem_10/sol2.py rename to thealgorithms/project_euler/problem_10/sol2.py diff --git a/thealgorithms/project_euler/problem_11/__init__.py b/thealgorithms/project_euler/problem_11/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_11/grid.txt b/thealgorithms/project_euler/problem_11/grid.txt similarity index 100% rename from project_euler/problem_11/grid.txt rename to thealgorithms/project_euler/problem_11/grid.txt diff --git a/project_euler/problem_11/sol1.py b/thealgorithms/project_euler/problem_11/sol1.py similarity index 100% rename from project_euler/problem_11/sol1.py rename to thealgorithms/project_euler/problem_11/sol1.py diff --git a/project_euler/problem_11/sol2.py b/thealgorithms/project_euler/problem_11/sol2.py similarity index 100% rename from project_euler/problem_11/sol2.py rename to thealgorithms/project_euler/problem_11/sol2.py diff --git a/thealgorithms/project_euler/problem_12/__init__.py b/thealgorithms/project_euler/problem_12/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_12/sol1.py b/thealgorithms/project_euler/problem_12/sol1.py similarity index 100% rename from project_euler/problem_12/sol1.py rename to thealgorithms/project_euler/problem_12/sol1.py diff --git a/project_euler/problem_12/sol2.py b/thealgorithms/project_euler/problem_12/sol2.py similarity index 100% rename from project_euler/problem_12/sol2.py rename to thealgorithms/project_euler/problem_12/sol2.py diff --git a/thealgorithms/project_euler/problem_13/__init__.py b/thealgorithms/project_euler/problem_13/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_13/sol1.py b/thealgorithms/project_euler/problem_13/sol1.py similarity index 100% rename from project_euler/problem_13/sol1.py rename to thealgorithms/project_euler/problem_13/sol1.py diff --git a/thealgorithms/project_euler/problem_14/__init__.py b/thealgorithms/project_euler/problem_14/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_14/sol1.py b/thealgorithms/project_euler/problem_14/sol1.py similarity index 100% rename from project_euler/problem_14/sol1.py rename to thealgorithms/project_euler/problem_14/sol1.py diff --git a/project_euler/problem_14/sol2.py b/thealgorithms/project_euler/problem_14/sol2.py similarity index 100% rename from project_euler/problem_14/sol2.py rename to thealgorithms/project_euler/problem_14/sol2.py diff --git a/thealgorithms/project_euler/problem_15/__init__.py b/thealgorithms/project_euler/problem_15/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_15/sol1.py b/thealgorithms/project_euler/problem_15/sol1.py similarity index 100% rename from project_euler/problem_15/sol1.py rename to thealgorithms/project_euler/problem_15/sol1.py diff --git a/thealgorithms/project_euler/problem_16/__init__.py b/thealgorithms/project_euler/problem_16/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_16/sol1.py b/thealgorithms/project_euler/problem_16/sol1.py similarity index 100% rename from project_euler/problem_16/sol1.py rename to thealgorithms/project_euler/problem_16/sol1.py diff --git a/thealgorithms/project_euler/problem_17/__init__.py b/thealgorithms/project_euler/problem_17/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_17/sol1.py b/thealgorithms/project_euler/problem_17/sol1.py similarity index 100% rename from project_euler/problem_17/sol1.py rename to thealgorithms/project_euler/problem_17/sol1.py diff --git a/thealgorithms/project_euler/problem_19/__init__.py b/thealgorithms/project_euler/problem_19/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_19/sol1.py b/thealgorithms/project_euler/problem_19/sol1.py similarity index 100% rename from project_euler/problem_19/sol1.py rename to thealgorithms/project_euler/problem_19/sol1.py diff --git a/thealgorithms/project_euler/problem_20/__init__.py b/thealgorithms/project_euler/problem_20/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_20/sol1.py b/thealgorithms/project_euler/problem_20/sol1.py similarity index 100% rename from project_euler/problem_20/sol1.py rename to thealgorithms/project_euler/problem_20/sol1.py diff --git a/project_euler/problem_20/sol2.py b/thealgorithms/project_euler/problem_20/sol2.py similarity index 100% rename from project_euler/problem_20/sol2.py rename to thealgorithms/project_euler/problem_20/sol2.py diff --git a/thealgorithms/project_euler/problem_21/__init__.py b/thealgorithms/project_euler/problem_21/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_21/sol1.py b/thealgorithms/project_euler/problem_21/sol1.py similarity index 100% rename from project_euler/problem_21/sol1.py rename to thealgorithms/project_euler/problem_21/sol1.py diff --git a/thealgorithms/project_euler/problem_22/__init__.py b/thealgorithms/project_euler/problem_22/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_22/p022_names.txt b/thealgorithms/project_euler/problem_22/p022_names.txt similarity index 100% rename from project_euler/problem_22/p022_names.txt rename to thealgorithms/project_euler/problem_22/p022_names.txt diff --git a/project_euler/problem_22/sol1.py b/thealgorithms/project_euler/problem_22/sol1.py similarity index 100% rename from project_euler/problem_22/sol1.py rename to thealgorithms/project_euler/problem_22/sol1.py diff --git a/project_euler/problem_22/sol2.py b/thealgorithms/project_euler/problem_22/sol2.py similarity index 100% rename from project_euler/problem_22/sol2.py rename to thealgorithms/project_euler/problem_22/sol2.py diff --git a/thealgorithms/project_euler/problem_24/__init__.py b/thealgorithms/project_euler/problem_24/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_24/sol1.py b/thealgorithms/project_euler/problem_24/sol1.py similarity index 100% rename from project_euler/problem_24/sol1.py rename to thealgorithms/project_euler/problem_24/sol1.py diff --git a/thealgorithms/project_euler/problem_25/__init__.py b/thealgorithms/project_euler/problem_25/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_25/sol1.py b/thealgorithms/project_euler/problem_25/sol1.py similarity index 100% rename from project_euler/problem_25/sol1.py rename to thealgorithms/project_euler/problem_25/sol1.py diff --git a/project_euler/problem_25/sol2.py b/thealgorithms/project_euler/problem_25/sol2.py similarity index 100% rename from project_euler/problem_25/sol2.py rename to thealgorithms/project_euler/problem_25/sol2.py diff --git a/thealgorithms/project_euler/problem_28/__init__.py b/thealgorithms/project_euler/problem_28/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_28/sol1.py b/thealgorithms/project_euler/problem_28/sol1.py similarity index 100% rename from project_euler/problem_28/sol1.py rename to thealgorithms/project_euler/problem_28/sol1.py diff --git a/thealgorithms/project_euler/problem_29/__init__.py b/thealgorithms/project_euler/problem_29/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_29/solution.py b/thealgorithms/project_euler/problem_29/solution.py similarity index 100% rename from project_euler/problem_29/solution.py rename to thealgorithms/project_euler/problem_29/solution.py diff --git a/thealgorithms/project_euler/problem_31/__init__.py b/thealgorithms/project_euler/problem_31/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_31/sol1.py b/thealgorithms/project_euler/problem_31/sol1.py similarity index 100% rename from project_euler/problem_31/sol1.py rename to thealgorithms/project_euler/problem_31/sol1.py diff --git a/thealgorithms/project_euler/problem_36/__init__.py b/thealgorithms/project_euler/problem_36/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_36/sol1.py b/thealgorithms/project_euler/problem_36/sol1.py similarity index 100% rename from project_euler/problem_36/sol1.py rename to thealgorithms/project_euler/problem_36/sol1.py diff --git a/thealgorithms/project_euler/problem_40/__init__.py b/thealgorithms/project_euler/problem_40/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_40/sol1.py b/thealgorithms/project_euler/problem_40/sol1.py similarity index 100% rename from project_euler/problem_40/sol1.py rename to thealgorithms/project_euler/problem_40/sol1.py diff --git a/thealgorithms/project_euler/problem_48/__init__.py b/thealgorithms/project_euler/problem_48/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_48/sol1.py b/thealgorithms/project_euler/problem_48/sol1.py similarity index 100% rename from project_euler/problem_48/sol1.py rename to thealgorithms/project_euler/problem_48/sol1.py diff --git a/thealgorithms/project_euler/problem_52/__init__.py b/thealgorithms/project_euler/problem_52/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_52/sol1.py b/thealgorithms/project_euler/problem_52/sol1.py similarity index 100% rename from project_euler/problem_52/sol1.py rename to thealgorithms/project_euler/problem_52/sol1.py diff --git a/thealgorithms/project_euler/problem_53/__init__.py b/thealgorithms/project_euler/problem_53/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_53/sol1.py b/thealgorithms/project_euler/problem_53/sol1.py similarity index 100% rename from project_euler/problem_53/sol1.py rename to thealgorithms/project_euler/problem_53/sol1.py diff --git a/thealgorithms/project_euler/problem_76/__init__.py b/thealgorithms/project_euler/problem_76/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/project_euler/problem_76/sol1.py b/thealgorithms/project_euler/problem_76/sol1.py similarity index 100% rename from project_euler/problem_76/sol1.py rename to thealgorithms/project_euler/problem_76/sol1.py diff --git a/thealgorithms/searches/__init__.py b/thealgorithms/searches/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/searches/binary_search.py b/thealgorithms/searches/binary_search.py similarity index 100% rename from searches/binary_search.py rename to thealgorithms/searches/binary_search.py diff --git a/searches/interpolation_search.py b/thealgorithms/searches/interpolation_search.py similarity index 100% rename from searches/interpolation_search.py rename to thealgorithms/searches/interpolation_search.py diff --git a/searches/jump_search.py b/thealgorithms/searches/jump_search.py similarity index 100% rename from searches/jump_search.py rename to thealgorithms/searches/jump_search.py diff --git a/searches/linear_search.py b/thealgorithms/searches/linear_search.py similarity index 100% rename from searches/linear_search.py rename to thealgorithms/searches/linear_search.py diff --git a/searches/quick_select.py b/thealgorithms/searches/quick_select.py similarity index 100% rename from searches/quick_select.py rename to thealgorithms/searches/quick_select.py diff --git a/searches/sentinel_linear_search.py b/thealgorithms/searches/sentinel_linear_search.py similarity index 100% rename from searches/sentinel_linear_search.py rename to thealgorithms/searches/sentinel_linear_search.py diff --git a/searches/tabu_search.py b/thealgorithms/searches/tabu_search.py similarity index 100% rename from searches/tabu_search.py rename to thealgorithms/searches/tabu_search.py diff --git a/searches/tabu_test_data.txt b/thealgorithms/searches/tabu_test_data.txt similarity index 100% rename from searches/tabu_test_data.txt rename to thealgorithms/searches/tabu_test_data.txt diff --git a/searches/ternary_search.py b/thealgorithms/searches/ternary_search.py similarity index 100% rename from searches/ternary_search.py rename to thealgorithms/searches/ternary_search.py diff --git a/searches/test_tabu_search.py b/thealgorithms/searches/test_tabu_search.py similarity index 100% rename from searches/test_tabu_search.py rename to thealgorithms/searches/test_tabu_search.py diff --git a/simple_client/README.md b/thealgorithms/simple_client/README.md similarity index 100% rename from simple_client/README.md rename to thealgorithms/simple_client/README.md diff --git a/thealgorithms/simple_client/__init__.py b/thealgorithms/simple_client/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/simple_client/client.py b/thealgorithms/simple_client/client.py similarity index 100% rename from simple_client/client.py rename to thealgorithms/simple_client/client.py diff --git a/simple_client/server.py b/thealgorithms/simple_client/server.py similarity index 100% rename from simple_client/server.py rename to thealgorithms/simple_client/server.py diff --git a/sorts/BitonicSort.py b/thealgorithms/sorts/BitonicSort.py similarity index 100% rename from sorts/BitonicSort.py rename to thealgorithms/sorts/BitonicSort.py diff --git a/thealgorithms/sorts/__init__.py b/thealgorithms/sorts/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/sorts/bogosort.py b/thealgorithms/sorts/bogosort.py similarity index 100% rename from sorts/bogosort.py rename to thealgorithms/sorts/bogosort.py diff --git a/sorts/bubble_sort.py b/thealgorithms/sorts/bubble_sort.py similarity index 100% rename from sorts/bubble_sort.py rename to thealgorithms/sorts/bubble_sort.py diff --git a/sorts/bucket_sort.py b/thealgorithms/sorts/bucket_sort.py similarity index 100% rename from sorts/bucket_sort.py rename to thealgorithms/sorts/bucket_sort.py diff --git a/sorts/cocktail_shaker_sort.py b/thealgorithms/sorts/cocktail_shaker_sort.py similarity index 100% rename from sorts/cocktail_shaker_sort.py rename to thealgorithms/sorts/cocktail_shaker_sort.py diff --git a/sorts/comb_sort.py b/thealgorithms/sorts/comb_sort.py similarity index 100% rename from sorts/comb_sort.py rename to thealgorithms/sorts/comb_sort.py diff --git a/sorts/counting_sort.py b/thealgorithms/sorts/counting_sort.py similarity index 100% rename from sorts/counting_sort.py rename to thealgorithms/sorts/counting_sort.py diff --git a/sorts/cyclesort.py b/thealgorithms/sorts/cyclesort.py similarity index 100% rename from sorts/cyclesort.py rename to thealgorithms/sorts/cyclesort.py diff --git a/sorts/external-sort.py b/thealgorithms/sorts/external-sort.py similarity index 100% rename from sorts/external-sort.py rename to thealgorithms/sorts/external-sort.py diff --git a/sorts/gnome_sort.py b/thealgorithms/sorts/gnome_sort.py similarity index 100% rename from sorts/gnome_sort.py rename to thealgorithms/sorts/gnome_sort.py diff --git a/sorts/heap_sort.py b/thealgorithms/sorts/heap_sort.py similarity index 100% rename from sorts/heap_sort.py rename to thealgorithms/sorts/heap_sort.py diff --git a/sorts/insertion_sort.py b/thealgorithms/sorts/insertion_sort.py similarity index 100% rename from sorts/insertion_sort.py rename to thealgorithms/sorts/insertion_sort.py diff --git a/sorts/merge_sort.py b/thealgorithms/sorts/merge_sort.py similarity index 100% rename from sorts/merge_sort.py rename to thealgorithms/sorts/merge_sort.py diff --git a/sorts/merge_sort_fastest.py b/thealgorithms/sorts/merge_sort_fastest.py similarity index 100% rename from sorts/merge_sort_fastest.py rename to thealgorithms/sorts/merge_sort_fastest.py diff --git a/sorts/normal_distribution_quick_sort.md b/thealgorithms/sorts/normal_distribution_quick_sort.md similarity index 100% rename from sorts/normal_distribution_quick_sort.md rename to thealgorithms/sorts/normal_distribution_quick_sort.md diff --git a/sorts/pancake_sort.py b/thealgorithms/sorts/pancake_sort.py similarity index 100% rename from sorts/pancake_sort.py rename to thealgorithms/sorts/pancake_sort.py diff --git a/sorts/quick_sort.py b/thealgorithms/sorts/quick_sort.py similarity index 100% rename from sorts/quick_sort.py rename to thealgorithms/sorts/quick_sort.py diff --git a/sorts/quick_sort_3_partition.py b/thealgorithms/sorts/quick_sort_3_partition.py similarity index 100% rename from sorts/quick_sort_3_partition.py rename to thealgorithms/sorts/quick_sort_3_partition.py diff --git a/sorts/radix_sort.py b/thealgorithms/sorts/radix_sort.py similarity index 100% rename from sorts/radix_sort.py rename to thealgorithms/sorts/radix_sort.py diff --git a/sorts/random_normal_distribution_quicksort.py b/thealgorithms/sorts/random_normal_distribution_quicksort.py similarity index 100% rename from sorts/random_normal_distribution_quicksort.py rename to thealgorithms/sorts/random_normal_distribution_quicksort.py diff --git a/sorts/selection_sort.py b/thealgorithms/sorts/selection_sort.py similarity index 100% rename from sorts/selection_sort.py rename to thealgorithms/sorts/selection_sort.py diff --git a/sorts/shell_sort.py b/thealgorithms/sorts/shell_sort.py similarity index 100% rename from sorts/shell_sort.py rename to thealgorithms/sorts/shell_sort.py diff --git a/sorts/sorting_graphs.png b/thealgorithms/sorts/sorting_graphs.png similarity index 100% rename from sorts/sorting_graphs.png rename to thealgorithms/sorts/sorting_graphs.png diff --git a/sorts/timsort.py b/thealgorithms/sorts/timsort.py similarity index 100% rename from sorts/timsort.py rename to thealgorithms/sorts/timsort.py diff --git a/sorts/topological_sort.py b/thealgorithms/sorts/topological_sort.py similarity index 100% rename from sorts/topological_sort.py rename to thealgorithms/sorts/topological_sort.py diff --git a/sorts/tree_sort.py b/thealgorithms/sorts/tree_sort.py similarity index 100% rename from sorts/tree_sort.py rename to thealgorithms/sorts/tree_sort.py diff --git a/thealgorithms/strings/__init__.py b/thealgorithms/strings/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/strings/knuth_morris_pratt.py b/thealgorithms/strings/knuth_morris_pratt.py similarity index 100% rename from strings/knuth_morris_pratt.py rename to thealgorithms/strings/knuth_morris_pratt.py diff --git a/strings/levenshtein_distance.py b/thealgorithms/strings/levenshtein_distance.py similarity index 100% rename from strings/levenshtein_distance.py rename to thealgorithms/strings/levenshtein_distance.py diff --git a/strings/manacher.py b/thealgorithms/strings/manacher.py similarity index 100% rename from strings/manacher.py rename to thealgorithms/strings/manacher.py diff --git a/strings/min_cost_string_conversion.py b/thealgorithms/strings/min_cost_string_conversion.py similarity index 100% rename from strings/min_cost_string_conversion.py rename to thealgorithms/strings/min_cost_string_conversion.py diff --git a/strings/rabin_karp.py b/thealgorithms/strings/rabin_karp.py similarity index 100% rename from strings/rabin_karp.py rename to thealgorithms/strings/rabin_karp.py diff --git a/thealgorithms/traversals/__init__.py b/thealgorithms/traversals/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/traversals/binary_tree_traversals.py b/thealgorithms/traversals/binary_tree_traversals.py similarity index 100% rename from traversals/binary_tree_traversals.py rename to thealgorithms/traversals/binary_tree_traversals.py From 5fb67c27887ffa2be02d8324d1b2058e286b40fe Mon Sep 17 00:00:00 2001 From: mnil2 Date: Thu, 21 Feb 2019 12:10:26 +0100 Subject: [PATCH 2/8] Add import test --- tests/test_imports.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/test_imports.py diff --git a/tests/test_imports.py b/tests/test_imports.py new file mode 100644 index 000000000000..b83823905773 --- /dev/null +++ b/tests/test_imports.py @@ -0,0 +1,41 @@ +import os +import re +import importlib +import pytest + +import thealgorithms + + +def _split_path_rec(path): + rest, tail = os.path.split(path) + if rest == "": + return [tail] + return _split_path_rec(rest) + [tail] + + +def _gather_modules(): + """Gather all modules that should be imported, but exclude __init__ + modules. + """ + testdir = os.path.dirname(__file__) + root = os.path.dirname(testdir) + algos_root = os.path.dirname(thealgorithms.__file__) + modules = [] + + for dirpath, dirnames, filenames in os.walk(algos_root): + for filename in filenames: + if not filename.endswith(".py") or filename.endswith("__init__.py"): + continue + reldirpath = os.path.relpath(dirpath, root) + path_nodes = _split_path_rec(os.path.join(reldirpath, filename)) + module = ".".join(path_nodes)[:-3] + modules.append(module) + return modules + + +@pytest.mark.parametrize("module", _gather_modules()) +@pytest.mark.timeout(1) +def test_import_module(module): + """Test that all modules from project root can be imported""" + mod = importlib.import_module(module) + assert mod From ebbb816accd1163f4a8e6575efc25bc31c355b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Lars=C3=A9n?= Date: Fri, 22 Feb 2019 21:23:48 +0100 Subject: [PATCH 3/8] Add minimal setup.py --- setup.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 setup.py diff --git a/setup.py b/setup.py new file mode 100644 index 000000000000..b1ae2908fa6a --- /dev/null +++ b/setup.py @@ -0,0 +1,40 @@ +"""This is a setup module for installing this project. To install the project, +set the current working directory to the project root, and run: + +``pip install .`` + +Depending on your environment, you may need some modifiers. To install for the +current user only, run: + +``pip install . --user`` + +``pip`` is sometimes aliased to the Python 3 version of pip, and sometimes to +the Python 2 version. If you want to be sure to use the one for Python 3, run: + +``python3 -m pip install . --user`` + +If you also want to be able to develop and run the test suite, you need to install +with test dependencies (preferably in a virtual environment): + +``pip install --editable .[TEST]`` +""" +from setuptools import setup, find_packages + +with open("README.md", mode="r") as file: + README = file.read() + +TEST_REQUIREMENTS = ["pytest>=4.0.0", "pytest-cov", "pytest-timeout"] +REQUIRED = ["numpy", "matplotlib", "sympy", "scikit-learn", "tensorflow"] + +setup( + name="TheAlgorithms", + description="All algorithms implemented in Python (for education)", + long_description=README, + long_description_content_type="text/markdown", + license="MIT", + packages=find_packages(exclude=("tests", "docs")), + tests_require=TEST_REQUIREMENTS, + install_requires=REQUIRED, + extras_require=dict(TEST=TEST_REQUIREMENTS), + python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*", +) From cac923dd9897b5a1bdd1d0f26b3b7863d3f8ae53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Lars=C3=A9n?= Date: Fri, 22 Feb 2019 21:24:08 +0100 Subject: [PATCH 4/8] Update .travis.yml --- .travis.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5fba6987bb66..8f8ed62304e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,26 +1,22 @@ language: python cache: pip python: - - 2.7 - 3.6 - #- nightly - #- pypy - #- pypy3 matrix: allow_failures: - python: nightly - python: pypy - python: pypy3 install: - #- pip install -r requirements.txt - - pip install flake8 # pytest # add another testing frameworks later + - pip install flake8 + - pip install -e .[TEST] before_script: # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics script: - - true # pytest --capture=sys # add other tests here + - pytest tests --cov thealgorithms --cov-branch notifications: on_success: change - on_failure: change # `always` will be the setting once code changes slow down + on_failure: change From e7d121bd6f3797b328eb73d0052d47b8cfa0953c Mon Sep 17 00:00:00 2001 From: larshum Date: Thu, 21 Feb 2019 11:17:08 +0100 Subject: [PATCH 5/8] Fix undefined name --- .../graphs/Directed_and_Undirected_Weighted_Graph.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py b/thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py index 68977de8d311..84a6b68b5651 100644 --- a/thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py +++ b/thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py @@ -153,6 +153,7 @@ def cycle_nodes(self): indirect_parents = [] ss = s anticipating_nodes = set() + on_the_way_back = False while True: # check if there is any non isolated nodes @@ -200,6 +201,7 @@ def has_cycle(self): indirect_parents = [] ss = s anticipating_nodes = set() + on_the_way_back = False while True: # check if there is any non isolated nodes @@ -368,6 +370,7 @@ def cycle_nodes(self): indirect_parents = [] ss = s anticipating_nodes = set() + on_the_way_back = False while True: # check if there is any non isolated nodes @@ -415,6 +418,7 @@ def has_cycle(self): indirect_parents = [] ss = s anticipating_nodes = set() + on_the_way_back = False while True: # check if there is any non isolated nodes From 518045afd3d77271fdb1d255d5ce39340863b925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Lars=C3=A9n?= Date: Sat, 23 Feb 2019 14:45:54 +0100 Subject: [PATCH 6/8] Revert to initial directory structure --- {thealgorithms/Graphs => Graphs}/BFS.py | 0 {thealgorithms/Graphs => Graphs}/DFS.py | 0 {thealgorithms/Graphs => Graphs}/__init__.py | 0 {thealgorithms/Maths => Maths}/3n+1.py | 0 {thealgorithms/Maths => Maths}/FindMax.py | 0 {thealgorithms/Maths => Maths}/FindMin.py | 0 {thealgorithms/Maths => Maths}/__init__.py | 0 {thealgorithms/Maths => Maths}/abs.py | 0 {thealgorithms/Maths => Maths}/absMax.py | 0 {thealgorithms/Maths => Maths}/absMin.py | 0 {thealgorithms/Maths => Maths}/average.py | 0 {thealgorithms/Maths => Maths}/find_hcf.py | 0 {thealgorithms/Maths => Maths}/find_lcm.py | 0 .../PSNR-example-base.png | Bin .../PSNR-example-comp-10.jpg | Bin .../compression_analysis}/__init__.py | 0 .../compression_analysis/compressed_image.png | Bin .../compression_analysis/example_image.jpg | Bin .../example_wikipedia_image.jpg | Bin .../compression_analysis/original_image.png | Bin .../compression_analysis/psnr.py | 0 .../__init__.py | 0 .../bisection.py | 0 .../intersection.py | 0 .../lu_decomposition.py | 0 .../newton_method.py | 0 .../newton_raphson_method.py | 0 .../__init__.py | 0 .../basic_binary_tree.py | 0 .../__init__.py | 0 .../quine_mc_cluskey.py | 0 .../boolean_algebra => ciphers}/__init__.py | 0 .../ciphers => ciphers}/affine_cipher.py | 0 {thealgorithms/ciphers => ciphers}/base16.py | 0 {thealgorithms/ciphers => ciphers}/base32.py | 0 .../ciphers => ciphers}/base64_cipher.py | 0 {thealgorithms/ciphers => ciphers}/base85.py | 0 .../brute_force_caesar_cipher.py | 0 .../ciphers => ciphers}/caesar_cipher.py | 0 .../ciphers => ciphers}/cryptomath_module.py | 0 .../elgamal_key_generator.py | 0 .../ciphers => ciphers}/hill_cipher.py | 0 .../ciphers => ciphers}/onepad_cipher.py | 0 .../ciphers => ciphers}/playfair_cipher.py | 0 .../ciphers => ciphers}/prehistoric_men.txt | 0 .../ciphers => ciphers}/rabin_miller.py | 0 {thealgorithms/ciphers => ciphers}/rot13.py | 0 .../ciphers => ciphers}/rsa_cipher.py | 0 .../ciphers => ciphers}/rsa_key_generator.py | 0 .../simple_substitution_cipher.py | 0 .../transposition_cipher.py | 0 ...ansposition_cipher_encrypt_decrypt_file.py | 0 .../ciphers => ciphers}/vigenere_cipher.py | 0 .../ciphers => ciphers}/xor_cipher.py | 0 .../ciphers => data_structures}/__init__.py | 0 .../arrays.py | 0 .../avl.py | 0 .../binary_tree/AVLtree.py | 0 .../binary_tree}/__init__.py | 0 .../binary_tree/binary_search_tree.py | 0 .../binary_tree/fenwick_tree.py | 0 .../binary_tree/lazy_segment_tree.py | 0 .../binary_tree/segment_tree.py | 0 .../graph}/__init__.py | 0 .../graph/bellman_ford.py | 0 .../graph/breadth_first_search.py | 0 .../graph/depth_first_search.py | 0 .../graph/dijkstra.py | 0 .../graph/dijkstra_algorithm.py | 0 .../graph/even_tree.py | 0 .../graph/floyd_warshall.py | 0 .../graph/graph.py | 0 .../graph/graph_list.py | 0 .../graph/graph_matrix.py | 0 .../hashing/__init__.py | 0 .../hashing/double_hash.py | 0 .../hashing/hash_table.py | 0 .../hashing/hash_table_with_linked_list.py | 0 .../hashing/number_theory}/__init__.py | 0 .../hashing/number_theory/prime_numbers.py | 0 .../hashing/quadratic_probing.py | 0 .../heap}/__init__.py | 0 .../heap/heap.py | 0 .../linked_list/__init__.py | 0 .../linked_list/doubly_linked_list.py | 0 .../linked_list/singly_linked_list.py | 0 .../linked_list/swapNodes.py | 0 .../queue}/__init__.py | 0 .../queue/deqeue.py | 0 .../queue/queue_on_list.py | 0 .../queue/queue_on_pseudo_stack.py | 0 .../stacks/__init__.py | 0 .../stacks/balanced_parentheses.py | 0 .../stacks/infix_to_postfix_conversion.py | 0 .../stacks/next.py | 0 .../stacks/stack.py | 0 .../stacks/stock_span_problem.py | 0 .../trie}/__init__.py | 0 .../trie/trie.py | 0 .../union_find}/__init__.py | 0 .../union_find/tests_union_find.py | 0 .../union_find/union_find.py | 0 .../__init__.py | 0 .../filters}/__init__.py | 0 .../filters/median_filter.py | 0 .../FractionalKnapsack.py | 0 .../__init__.py | 0 .../abbreviation.py | 0 .../coin_change.py | 0 .../edit_distance.py | 0 .../fastfibonacci.py | 0 .../fibonacci.py | 0 .../floyd_warshall.py | 0 .../integer_partition.py | 0 .../k_means_clustering_tensorflow.py | 0 .../knapsack.py | 0 .../longest_common_subsequence.py | 0 .../longest_increasing_subsequence.py | 0 ...longest_increasing_subsequence_O(nlogn).py | 0 .../longest_sub_array.py | 0 .../matrix_chain_order.py | 0 .../max_sub_array.py | 0 .../minimum_partition.py | 0 .../rod_cutting.py | 0 ...factorial_python.py => factorial_python.py | 0 .../__init__.py | 0 .../ftp_client_server.py | 0 .../ftp_send_receive.py | 0 .../Directed_and_Undirected_Weighted_Graph.py | 0 .../__init__.py | 0 {thealgorithms/graphs => graphs}/a_star.py | 0 .../graphs => graphs}/articulation_points.py | 0 .../graphs => graphs}/basic_graphs.py | 0 .../check_bipartite_graph_bfs.py | 0 {thealgorithms/graphs => graphs}/dijkstra.py | 0 .../graphs => graphs}/finding_bridges.py | 0 .../graphs => graphs}/kahns_algorithm_long.py | 0 .../graphs => graphs}/kahns_algorithm_topo.py | 0 .../minimum_spanning_tree_kruskal.py | 0 .../minimum_spanning_tree_prims.py | 0 .../multi_hueristic_astar.py | 0 .../graphs => graphs}/scc_kosaraju.py | 0 .../graphs => graphs}/tarjans_scc.py | 0 {thealgorithms/graphs => hashes}/__init__.py | 0 .../hashes => hashes}/chaos_machine.py | 0 {thealgorithms/hashes => hashes}/md5.py | 0 {thealgorithms/hashes => hashes}/sha1.py | 0 .../README.md | 0 .../src}/__init__.py | 0 .../src/lib.py | 0 .../src/tests.py | 0 .../NaiveBayes.ipynb | 0 .../Random Forest Classifier.ipynb | 0 .../Social_Network_Ads.csv | 0 .../Random_Forest_Classification}/__init__.py | 0 .../random_forest_classification.py | 0 .../Position_Salaries.csv | 0 .../Random Forest Regression.ipynb | 0 .../Random_Forest_Regression}/__init__.py | 0 .../random_forest_regression.py | 0 .../__init__.py | 0 .../decision_tree.py | 0 .../gradient_descent.py | 0 .../k_means_clust.py | 0 .../linear_regression.py | 0 .../logistic_regression.py | 0 .../perceptron.py | 0 .../reuters_one_vs_rest_classifier.ipynb | 0 .../scoring_functions.py | 0 {thealgorithms/maths => maths}/PrimeCheck.py | 0 .../machine_learning => maths}/__init__.py | 0 {thealgorithms/maths => maths}/basic_maths.py | 0 .../fibonacci_sequence_recursion.py | 0 .../maths => maths}/greater_common_divisor.py | 0 .../maths => maths}/modular_exponential.py | 0 .../maths => maths}/newton_raphson.py | 0 .../maths => maths}/segmented_sieve.py | 0 .../maths => maths}/sieve_of_eratosthenes.py | 0 .../maths => maths}/simpson_rule.py | 0 .../maths => maths}/trapezoidal_rule.py | 0 {thealgorithms/maths => matrix}/__init__.py | 0 .../matrix_multiplication_addition.py | 0 .../matrix => networking_flow}/__init__.py | 0 .../ford_fulkerson.py | 0 .../minimum_cut.py | 0 .../__init__.py | 0 .../neural_network => neural_network}/bpnn.py | 0 .../convolution_neural_network.py | 0 .../fcn.ipynb | 0 .../perceptron.py | 0 .../neural_network => other}/__init__.py | 0 {thealgorithms/other => other}/anagrams.py | 0 .../other => other}/binary_exponentiation.py | 0 .../binary_exponentiation_2.py | 0 .../detecting_english_programmatically.py | 0 {thealgorithms/other => other}/dictionary.txt | 0 .../other => other}/euclidean_gcd.py | 0 .../other => other}/findingPrimes.py | 0 .../other => other}/fischer_yates_shuffle.py | 0 .../other => other}/frequency_finder.py | 0 .../other => other/game_of_life}/__init__.py | 0 .../game_of_life/game_o_life.py | 0 .../other => other}/game_of_life/sample.gif | Bin .../linear_congruential_generator.py | 0 .../other => other}/nested_brackets.py | 0 {thealgorithms/other => other}/palindrome.py | 0 .../other => other}/password_generator.py | 0 {thealgorithms/other => other}/primelib.py | 0 .../other => other}/sierpinski_triangle.py | 0 .../other => other}/tower_of_hanoi.py | 0 {thealgorithms/other => other}/two_sum.py | 0 .../other => other}/word_patterns.py | 0 {thealgorithms/other => other}/words | 0 .../project_euler => project_euler}/README.md | 0 .../problem_01}/__init__.py | 0 .../problem_01/sol1.py | 0 .../problem_01/sol2.py | 0 .../problem_01/sol3.py | 0 .../problem_01/sol4.py | 0 .../problem_01/sol5.py | 0 .../problem_02}/__init__.py | 0 .../problem_02/sol1.py | 0 .../problem_02/sol2.py | 0 .../problem_02/sol3.py | 0 .../problem_03}/__init__.py | 0 .../problem_03/sol1.py | 0 .../problem_03/sol2.py | 0 .../problem_04}/__init__.py | 0 .../problem_04/sol1.py | 0 .../problem_04/sol2.py | 0 .../problem_05}/__init__.py | 0 .../problem_05/sol1.py | 0 .../problem_05/sol2.py | 0 .../problem_06}/__init__.py | 0 .../problem_06/sol1.py | 0 .../problem_06/sol2.py | 0 .../problem_06/sol3.py | 0 .../problem_07}/__init__.py | 0 .../problem_07/sol1.py | 0 .../problem_07/sol2.py | 0 .../problem_07/sol3.py | 0 .../problem_08}/__init__.py | 0 .../problem_08/sol1.py | 0 .../problem_08/sol2.py | 0 .../problem_09}/__init__.py | 0 .../problem_09/sol1.py | 0 .../problem_09/sol2.py | 0 .../problem_09/sol3.py | 0 .../problem_10}/__init__.py | 0 .../problem_10/sol1.py | 0 .../problem_10/sol2.py | 0 .../problem_11}/__init__.py | 0 .../problem_11/grid.txt | 0 .../problem_11/sol1.py | 0 .../problem_11/sol2.py | 0 .../problem_12}/__init__.py | 0 .../problem_12/sol1.py | 0 .../problem_12/sol2.py | 0 .../problem_13}/__init__.py | 0 .../problem_13/sol1.py | 0 .../problem_14}/__init__.py | 0 .../problem_14/sol1.py | 0 .../problem_14/sol2.py | 0 .../problem_15}/__init__.py | 0 .../problem_15/sol1.py | 0 .../problem_16}/__init__.py | 0 .../problem_16/sol1.py | 0 .../problem_17}/__init__.py | 0 .../problem_17/sol1.py | 0 .../problem_19}/__init__.py | 0 .../problem_19/sol1.py | 0 .../problem_20}/__init__.py | 0 .../problem_20/sol1.py | 0 .../problem_20/sol2.py | 0 .../problem_21}/__init__.py | 0 .../problem_21/sol1.py | 0 .../problem_22}/__init__.py | 0 .../problem_22/p022_names.txt | 0 .../problem_22/sol1.py | 0 .../problem_22/sol2.py | 0 .../problem_24}/__init__.py | 0 .../problem_24/sol1.py | 0 .../problem_25}/__init__.py | 0 .../problem_25/sol1.py | 0 .../problem_25/sol2.py | 0 .../problem_28}/__init__.py | 0 .../problem_28/sol1.py | 0 .../problem_29}/__init__.py | 0 .../problem_29/solution.py | 0 .../problem_31}/__init__.py | 0 .../problem_31/sol1.py | 0 .../problem_36}/__init__.py | 0 .../problem_36/sol1.py | 0 .../problem_40}/__init__.py | 0 .../problem_40/sol1.py | 0 .../problem_48}/__init__.py | 0 .../problem_48/sol1.py | 0 .../problem_52}/__init__.py | 0 .../problem_52/sol1.py | 0 .../problem_53}/__init__.py | 0 .../problem_53/sol1.py | 0 .../problem_76}/__init__.py | 0 .../problem_76/sol1.py | 0 .../problem_76 => searches}/__init__.py | 0 .../searches => searches}/binary_search.py | 0 .../interpolation_search.py | 0 .../searches => searches}/jump_search.py | 0 .../searches => searches}/linear_search.py | 0 .../searches => searches}/quick_select.py | 0 .../sentinel_linear_search.py | 0 .../searches => searches}/tabu_search.py | 0 .../searches => searches}/tabu_test_data.txt | 0 .../searches => searches}/ternary_search.py | 0 .../searches => searches}/test_tabu_search.py | 0 .../simple_client => simple_client}/README.md | 0 .../searches => simple_client}/__init__.py | 0 .../simple_client => simple_client}/client.py | 0 .../simple_client => simple_client}/server.py | 0 {thealgorithms/sorts => sorts}/BitonicSort.py | 0 .../simple_client => sorts}/__init__.py | 0 {thealgorithms/sorts => sorts}/bogosort.py | 0 {thealgorithms/sorts => sorts}/bubble_sort.py | 0 {thealgorithms/sorts => sorts}/bucket_sort.py | 0 .../sorts => sorts}/cocktail_shaker_sort.py | 0 {thealgorithms/sorts => sorts}/comb_sort.py | 0 .../sorts => sorts}/counting_sort.py | 0 {thealgorithms/sorts => sorts}/cyclesort.py | 0 .../sorts => sorts}/external-sort.py | 0 {thealgorithms/sorts => sorts}/gnome_sort.py | 0 {thealgorithms/sorts => sorts}/heap_sort.py | 0 .../sorts => sorts}/insertion_sort.py | 0 {thealgorithms/sorts => sorts}/merge_sort.py | 0 .../sorts => sorts}/merge_sort_fastest.py | 0 .../normal_distribution_quick_sort.md | 0 .../sorts => sorts}/pancake_sort.py | 0 {thealgorithms/sorts => sorts}/quick_sort.py | 0 .../sorts => sorts}/quick_sort_3_partition.py | 0 {thealgorithms/sorts => sorts}/radix_sort.py | 0 .../random_normal_distribution_quicksort.py | 0 .../sorts => sorts}/selection_sort.py | 0 {thealgorithms/sorts => sorts}/shell_sort.py | 0 .../sorts => sorts}/sorting_graphs.png | Bin {thealgorithms/sorts => sorts}/timsort.py | 0 .../sorts => sorts}/topological_sort.py | 0 {thealgorithms/sorts => sorts}/tree_sort.py | 0 {thealgorithms/sorts => strings}/__init__.py | 0 .../strings => strings}/knuth_morris_pratt.py | 0 .../levenshtein_distance.py | 0 .../strings => strings}/manacher.py | 0 .../min_cost_string_conversion.py | 0 .../strings => strings}/rabin_karp.py | 0 tests/test_imports.py | 23 ++++++++++++------ thealgorithms/traversals/__init__.py | 0 .../strings => traversals}/__init__.py | 0 .../binary_tree_traversals.py | 0 355 files changed, 15 insertions(+), 8 deletions(-) rename {thealgorithms/Graphs => Graphs}/BFS.py (100%) rename {thealgorithms/Graphs => Graphs}/DFS.py (100%) rename {thealgorithms/Graphs => Graphs}/__init__.py (100%) rename {thealgorithms/Maths => Maths}/3n+1.py (100%) rename {thealgorithms/Maths => Maths}/FindMax.py (100%) rename {thealgorithms/Maths => Maths}/FindMin.py (100%) rename {thealgorithms/Maths => Maths}/__init__.py (100%) rename {thealgorithms/Maths => Maths}/abs.py (100%) rename {thealgorithms/Maths => Maths}/absMax.py (100%) rename {thealgorithms/Maths => Maths}/absMin.py (100%) rename {thealgorithms/Maths => Maths}/average.py (100%) rename {thealgorithms/Maths => Maths}/find_hcf.py (100%) rename {thealgorithms/Maths => Maths}/find_lcm.py (100%) rename {thealgorithms/analysis => analysis}/compression_analysis/PSNR-example-base.png (100%) rename {thealgorithms/analysis => analysis}/compression_analysis/PSNR-example-comp-10.jpg (100%) rename {thealgorithms => analysis/compression_analysis}/__init__.py (100%) rename {thealgorithms/analysis => analysis}/compression_analysis/compressed_image.png (100%) rename {thealgorithms/analysis => analysis}/compression_analysis/example_image.jpg (100%) rename {thealgorithms/analysis => analysis}/compression_analysis/example_wikipedia_image.jpg (100%) rename {thealgorithms/analysis => analysis}/compression_analysis/original_image.png (100%) rename {thealgorithms/analysis => analysis}/compression_analysis/psnr.py (100%) rename {thealgorithms/analysis/compression_analysis => arithmetic_analysis}/__init__.py (100%) rename {thealgorithms/arithmetic_analysis => arithmetic_analysis}/bisection.py (100%) rename {thealgorithms/arithmetic_analysis => arithmetic_analysis}/intersection.py (100%) rename {thealgorithms/arithmetic_analysis => arithmetic_analysis}/lu_decomposition.py (100%) rename {thealgorithms/arithmetic_analysis => arithmetic_analysis}/newton_method.py (100%) rename {thealgorithms/arithmetic_analysis => arithmetic_analysis}/newton_raphson_method.py (100%) rename {thealgorithms/arithmetic_analysis => binary_tree}/__init__.py (100%) rename {thealgorithms/binary_tree => binary_tree}/basic_binary_tree.py (100%) rename {thealgorithms/binary_tree => boolean_algebra}/__init__.py (100%) rename {thealgorithms/boolean_algebra => boolean_algebra}/quine_mc_cluskey.py (100%) rename {thealgorithms/boolean_algebra => ciphers}/__init__.py (100%) rename {thealgorithms/ciphers => ciphers}/affine_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/base16.py (100%) rename {thealgorithms/ciphers => ciphers}/base32.py (100%) rename {thealgorithms/ciphers => ciphers}/base64_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/base85.py (100%) rename {thealgorithms/ciphers => ciphers}/brute_force_caesar_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/caesar_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/cryptomath_module.py (100%) rename {thealgorithms/ciphers => ciphers}/elgamal_key_generator.py (100%) rename {thealgorithms/ciphers => ciphers}/hill_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/onepad_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/playfair_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/prehistoric_men.txt (100%) rename {thealgorithms/ciphers => ciphers}/rabin_miller.py (100%) rename {thealgorithms/ciphers => ciphers}/rot13.py (100%) rename {thealgorithms/ciphers => ciphers}/rsa_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/rsa_key_generator.py (100%) rename {thealgorithms/ciphers => ciphers}/simple_substitution_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/transposition_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/transposition_cipher_encrypt_decrypt_file.py (100%) rename {thealgorithms/ciphers => ciphers}/vigenere_cipher.py (100%) rename {thealgorithms/ciphers => ciphers}/xor_cipher.py (100%) rename {thealgorithms/ciphers => data_structures}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/arrays.py (100%) rename {thealgorithms/data_structures => data_structures}/avl.py (100%) rename {thealgorithms/data_structures => data_structures}/binary_tree/AVLtree.py (100%) rename {thealgorithms/data_structures => data_structures/binary_tree}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/binary_tree/binary_search_tree.py (100%) rename {thealgorithms/data_structures => data_structures}/binary_tree/fenwick_tree.py (100%) rename {thealgorithms/data_structures => data_structures}/binary_tree/lazy_segment_tree.py (100%) rename {thealgorithms/data_structures => data_structures}/binary_tree/segment_tree.py (100%) rename {thealgorithms/data_structures/binary_tree => data_structures/graph}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/bellman_ford.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/breadth_first_search.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/depth_first_search.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/dijkstra.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/dijkstra_algorithm.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/even_tree.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/floyd_warshall.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/graph.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/graph_list.py (100%) rename {thealgorithms/data_structures => data_structures}/graph/graph_matrix.py (100%) rename {thealgorithms/data_structures => data_structures}/hashing/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/hashing/double_hash.py (100%) rename {thealgorithms/data_structures => data_structures}/hashing/hash_table.py (100%) rename {thealgorithms/data_structures => data_structures}/hashing/hash_table_with_linked_list.py (100%) rename {thealgorithms/data_structures/graph => data_structures/hashing/number_theory}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/hashing/number_theory/prime_numbers.py (100%) rename {thealgorithms/data_structures => data_structures}/hashing/quadratic_probing.py (100%) rename {thealgorithms/data_structures/hashing/number_theory => data_structures/heap}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/heap/heap.py (100%) rename {thealgorithms/data_structures => data_structures}/linked_list/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/linked_list/doubly_linked_list.py (100%) rename {thealgorithms/data_structures => data_structures}/linked_list/singly_linked_list.py (100%) rename {thealgorithms/data_structures => data_structures}/linked_list/swapNodes.py (100%) rename {thealgorithms/data_structures/heap => data_structures/queue}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/queue/deqeue.py (100%) rename {thealgorithms/data_structures => data_structures}/queue/queue_on_list.py (100%) rename {thealgorithms/data_structures => data_structures}/queue/queue_on_pseudo_stack.py (100%) rename {thealgorithms/data_structures => data_structures}/stacks/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/stacks/balanced_parentheses.py (100%) rename {thealgorithms/data_structures => data_structures}/stacks/infix_to_postfix_conversion.py (100%) rename {thealgorithms/data_structures => data_structures}/stacks/next.py (100%) rename {thealgorithms/data_structures => data_structures}/stacks/stack.py (100%) rename {thealgorithms/data_structures => data_structures}/stacks/stock_span_problem.py (100%) rename {thealgorithms/data_structures/queue => data_structures/trie}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/trie/trie.py (100%) rename {thealgorithms/data_structures/trie => data_structures/union_find}/__init__.py (100%) rename {thealgorithms/data_structures => data_structures}/union_find/tests_union_find.py (100%) rename {thealgorithms/data_structures => data_structures}/union_find/union_find.py (100%) rename {thealgorithms/data_structures/union_find => digital_image_processing}/__init__.py (100%) rename {thealgorithms/digital_image_processing => digital_image_processing/filters}/__init__.py (100%) rename {thealgorithms/digital_image_processing => digital_image_processing}/filters/median_filter.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/FractionalKnapsack.py (100%) rename {thealgorithms/digital_image_processing/filters => dynamic_programming}/__init__.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/abbreviation.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/coin_change.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/edit_distance.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/fastfibonacci.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/fibonacci.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/floyd_warshall.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/integer_partition.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/k_means_clustering_tensorflow.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/knapsack.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/longest_common_subsequence.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/longest_increasing_subsequence.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/longest_increasing_subsequence_O(nlogn).py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/longest_sub_array.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/matrix_chain_order.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/max_sub_array.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/minimum_partition.py (100%) rename {thealgorithms/dynamic_programming => dynamic_programming}/rod_cutting.py (100%) rename thealgorithms/factorial_python.py => factorial_python.py (100%) rename {thealgorithms/dynamic_programming => file_transfer_protocol}/__init__.py (100%) rename {thealgorithms/file_transfer_protocol => file_transfer_protocol}/ftp_client_server.py (100%) rename {thealgorithms/file_transfer_protocol => file_transfer_protocol}/ftp_send_receive.py (100%) rename {thealgorithms/graphs => graphs}/Directed_and_Undirected_Weighted_Graph.py (100%) rename {thealgorithms/file_transfer_protocol => graphs}/__init__.py (100%) rename {thealgorithms/graphs => graphs}/a_star.py (100%) rename {thealgorithms/graphs => graphs}/articulation_points.py (100%) rename {thealgorithms/graphs => graphs}/basic_graphs.py (100%) rename {thealgorithms/graphs => graphs}/check_bipartite_graph_bfs.py (100%) rename {thealgorithms/graphs => graphs}/dijkstra.py (100%) rename {thealgorithms/graphs => graphs}/finding_bridges.py (100%) rename {thealgorithms/graphs => graphs}/kahns_algorithm_long.py (100%) rename {thealgorithms/graphs => graphs}/kahns_algorithm_topo.py (100%) rename {thealgorithms/graphs => graphs}/minimum_spanning_tree_kruskal.py (100%) rename {thealgorithms/graphs => graphs}/minimum_spanning_tree_prims.py (100%) rename {thealgorithms/graphs => graphs}/multi_hueristic_astar.py (100%) rename {thealgorithms/graphs => graphs}/scc_kosaraju.py (100%) rename {thealgorithms/graphs => graphs}/tarjans_scc.py (100%) rename {thealgorithms/graphs => hashes}/__init__.py (100%) rename {thealgorithms/hashes => hashes}/chaos_machine.py (100%) rename {thealgorithms/hashes => hashes}/md5.py (100%) rename {thealgorithms/hashes => hashes}/sha1.py (100%) rename {thealgorithms/linear_algebra_python => linear_algebra_python}/README.md (100%) rename {thealgorithms/hashes => linear_algebra_python/src}/__init__.py (100%) rename {thealgorithms/linear_algebra_python => linear_algebra_python}/src/lib.py (100%) rename {thealgorithms/linear_algebra_python => linear_algebra_python}/src/tests.py (100%) rename {thealgorithms/machine_learning => machine_learning}/NaiveBayes.ipynb (100%) rename {thealgorithms/machine_learning => machine_learning}/Random_Forest_Classification/Random Forest Classifier.ipynb (100%) rename {thealgorithms/machine_learning => machine_learning}/Random_Forest_Classification/Social_Network_Ads.csv (100%) rename {thealgorithms/linear_algebra_python/src => machine_learning/Random_Forest_Classification}/__init__.py (100%) rename {thealgorithms/machine_learning => machine_learning}/Random_Forest_Classification/random_forest_classification.py (100%) rename {thealgorithms/machine_learning => machine_learning}/Random_Forest_Regression/Position_Salaries.csv (100%) rename {thealgorithms/machine_learning => machine_learning}/Random_Forest_Regression/Random Forest Regression.ipynb (100%) rename {thealgorithms/machine_learning/Random_Forest_Classification => machine_learning/Random_Forest_Regression}/__init__.py (100%) rename {thealgorithms/machine_learning => machine_learning}/Random_Forest_Regression/random_forest_regression.py (100%) rename {thealgorithms/machine_learning/Random_Forest_Regression => machine_learning}/__init__.py (100%) rename {thealgorithms/machine_learning => machine_learning}/decision_tree.py (100%) rename {thealgorithms/machine_learning => machine_learning}/gradient_descent.py (100%) rename {thealgorithms/machine_learning => machine_learning}/k_means_clust.py (100%) rename {thealgorithms/machine_learning => machine_learning}/linear_regression.py (100%) rename {thealgorithms/machine_learning => machine_learning}/logistic_regression.py (100%) rename {thealgorithms/machine_learning => machine_learning}/perceptron.py (100%) rename {thealgorithms/machine_learning => machine_learning}/reuters_one_vs_rest_classifier.ipynb (100%) rename {thealgorithms/machine_learning => machine_learning}/scoring_functions.py (100%) rename {thealgorithms/maths => maths}/PrimeCheck.py (100%) rename {thealgorithms/machine_learning => maths}/__init__.py (100%) rename {thealgorithms/maths => maths}/basic_maths.py (100%) rename {thealgorithms/maths => maths}/fibonacci_sequence_recursion.py (100%) rename {thealgorithms/maths => maths}/greater_common_divisor.py (100%) rename {thealgorithms/maths => maths}/modular_exponential.py (100%) rename {thealgorithms/maths => maths}/newton_raphson.py (100%) rename {thealgorithms/maths => maths}/segmented_sieve.py (100%) rename {thealgorithms/maths => maths}/sieve_of_eratosthenes.py (100%) rename {thealgorithms/maths => maths}/simpson_rule.py (100%) rename {thealgorithms/maths => maths}/trapezoidal_rule.py (100%) rename {thealgorithms/maths => matrix}/__init__.py (100%) rename {thealgorithms/matrix => matrix}/matrix_multiplication_addition.py (100%) rename {thealgorithms/matrix => networking_flow}/__init__.py (100%) rename {thealgorithms/networking_flow => networking_flow}/ford_fulkerson.py (100%) rename {thealgorithms/networking_flow => networking_flow}/minimum_cut.py (100%) rename {thealgorithms/networking_flow => neural_network}/__init__.py (100%) rename {thealgorithms/neural_network => neural_network}/bpnn.py (100%) rename {thealgorithms/neural_network => neural_network}/convolution_neural_network.py (100%) rename {thealgorithms/neural_network => neural_network}/fcn.ipynb (100%) rename {thealgorithms/neural_network => neural_network}/perceptron.py (100%) rename {thealgorithms/neural_network => other}/__init__.py (100%) rename {thealgorithms/other => other}/anagrams.py (100%) rename {thealgorithms/other => other}/binary_exponentiation.py (100%) rename {thealgorithms/other => other}/binary_exponentiation_2.py (100%) rename {thealgorithms/other => other}/detecting_english_programmatically.py (100%) rename {thealgorithms/other => other}/dictionary.txt (100%) rename {thealgorithms/other => other}/euclidean_gcd.py (100%) rename {thealgorithms/other => other}/findingPrimes.py (100%) rename {thealgorithms/other => other}/fischer_yates_shuffle.py (100%) rename {thealgorithms/other => other}/frequency_finder.py (100%) rename {thealgorithms/other => other/game_of_life}/__init__.py (100%) rename {thealgorithms/other => other}/game_of_life/game_o_life.py (100%) rename {thealgorithms/other => other}/game_of_life/sample.gif (100%) rename {thealgorithms/other => other}/linear_congruential_generator.py (100%) rename {thealgorithms/other => other}/nested_brackets.py (100%) rename {thealgorithms/other => other}/palindrome.py (100%) rename {thealgorithms/other => other}/password_generator.py (100%) rename {thealgorithms/other => other}/primelib.py (100%) rename {thealgorithms/other => other}/sierpinski_triangle.py (100%) rename {thealgorithms/other => other}/tower_of_hanoi.py (100%) rename {thealgorithms/other => other}/two_sum.py (100%) rename {thealgorithms/other => other}/word_patterns.py (100%) rename {thealgorithms/other => other}/words (100%) rename {thealgorithms/project_euler => project_euler}/README.md (100%) rename {thealgorithms/other/game_of_life => project_euler/problem_01}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_01/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_01/sol2.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_01/sol3.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_01/sol4.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_01/sol5.py (100%) rename {thealgorithms/project_euler/problem_01 => project_euler/problem_02}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_02/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_02/sol2.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_02/sol3.py (100%) rename {thealgorithms/project_euler/problem_02 => project_euler/problem_03}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_03/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_03/sol2.py (100%) rename {thealgorithms/project_euler/problem_03 => project_euler/problem_04}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_04/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_04/sol2.py (100%) rename {thealgorithms/project_euler/problem_04 => project_euler/problem_05}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_05/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_05/sol2.py (100%) rename {thealgorithms/project_euler/problem_05 => project_euler/problem_06}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_06/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_06/sol2.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_06/sol3.py (100%) rename {thealgorithms/project_euler/problem_06 => project_euler/problem_07}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_07/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_07/sol2.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_07/sol3.py (100%) rename {thealgorithms/project_euler/problem_07 => project_euler/problem_08}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_08/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_08/sol2.py (100%) rename {thealgorithms/project_euler/problem_08 => project_euler/problem_09}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_09/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_09/sol2.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_09/sol3.py (100%) rename {thealgorithms/project_euler/problem_09 => project_euler/problem_10}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_10/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_10/sol2.py (100%) rename {thealgorithms/project_euler/problem_10 => project_euler/problem_11}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_11/grid.txt (100%) rename {thealgorithms/project_euler => project_euler}/problem_11/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_11/sol2.py (100%) rename {thealgorithms/project_euler/problem_11 => project_euler/problem_12}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_12/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_12/sol2.py (100%) rename {thealgorithms/project_euler/problem_12 => project_euler/problem_13}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_13/sol1.py (100%) rename {thealgorithms/project_euler/problem_13 => project_euler/problem_14}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_14/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_14/sol2.py (100%) rename {thealgorithms/project_euler/problem_14 => project_euler/problem_15}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_15/sol1.py (100%) rename {thealgorithms/project_euler/problem_15 => project_euler/problem_16}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_16/sol1.py (100%) rename {thealgorithms/project_euler/problem_16 => project_euler/problem_17}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_17/sol1.py (100%) rename {thealgorithms/project_euler/problem_17 => project_euler/problem_19}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_19/sol1.py (100%) rename {thealgorithms/project_euler/problem_19 => project_euler/problem_20}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_20/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_20/sol2.py (100%) rename {thealgorithms/project_euler/problem_20 => project_euler/problem_21}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_21/sol1.py (100%) rename {thealgorithms/project_euler/problem_21 => project_euler/problem_22}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_22/p022_names.txt (100%) rename {thealgorithms/project_euler => project_euler}/problem_22/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_22/sol2.py (100%) rename {thealgorithms/project_euler/problem_22 => project_euler/problem_24}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_24/sol1.py (100%) rename {thealgorithms/project_euler/problem_24 => project_euler/problem_25}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_25/sol1.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_25/sol2.py (100%) rename {thealgorithms/project_euler/problem_25 => project_euler/problem_28}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_28/sol1.py (100%) rename {thealgorithms/project_euler/problem_28 => project_euler/problem_29}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_29/solution.py (100%) rename {thealgorithms/project_euler/problem_29 => project_euler/problem_31}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_31/sol1.py (100%) rename {thealgorithms/project_euler/problem_31 => project_euler/problem_36}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_36/sol1.py (100%) rename {thealgorithms/project_euler/problem_36 => project_euler/problem_40}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_40/sol1.py (100%) rename {thealgorithms/project_euler/problem_40 => project_euler/problem_48}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_48/sol1.py (100%) rename {thealgorithms/project_euler/problem_48 => project_euler/problem_52}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_52/sol1.py (100%) rename {thealgorithms/project_euler/problem_52 => project_euler/problem_53}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_53/sol1.py (100%) rename {thealgorithms/project_euler/problem_53 => project_euler/problem_76}/__init__.py (100%) rename {thealgorithms/project_euler => project_euler}/problem_76/sol1.py (100%) rename {thealgorithms/project_euler/problem_76 => searches}/__init__.py (100%) rename {thealgorithms/searches => searches}/binary_search.py (100%) rename {thealgorithms/searches => searches}/interpolation_search.py (100%) rename {thealgorithms/searches => searches}/jump_search.py (100%) rename {thealgorithms/searches => searches}/linear_search.py (100%) rename {thealgorithms/searches => searches}/quick_select.py (100%) rename {thealgorithms/searches => searches}/sentinel_linear_search.py (100%) rename {thealgorithms/searches => searches}/tabu_search.py (100%) rename {thealgorithms/searches => searches}/tabu_test_data.txt (100%) rename {thealgorithms/searches => searches}/ternary_search.py (100%) rename {thealgorithms/searches => searches}/test_tabu_search.py (100%) rename {thealgorithms/simple_client => simple_client}/README.md (100%) rename {thealgorithms/searches => simple_client}/__init__.py (100%) rename {thealgorithms/simple_client => simple_client}/client.py (100%) rename {thealgorithms/simple_client => simple_client}/server.py (100%) rename {thealgorithms/sorts => sorts}/BitonicSort.py (100%) rename {thealgorithms/simple_client => sorts}/__init__.py (100%) rename {thealgorithms/sorts => sorts}/bogosort.py (100%) rename {thealgorithms/sorts => sorts}/bubble_sort.py (100%) rename {thealgorithms/sorts => sorts}/bucket_sort.py (100%) rename {thealgorithms/sorts => sorts}/cocktail_shaker_sort.py (100%) rename {thealgorithms/sorts => sorts}/comb_sort.py (100%) rename {thealgorithms/sorts => sorts}/counting_sort.py (100%) rename {thealgorithms/sorts => sorts}/cyclesort.py (100%) rename {thealgorithms/sorts => sorts}/external-sort.py (100%) rename {thealgorithms/sorts => sorts}/gnome_sort.py (100%) rename {thealgorithms/sorts => sorts}/heap_sort.py (100%) rename {thealgorithms/sorts => sorts}/insertion_sort.py (100%) rename {thealgorithms/sorts => sorts}/merge_sort.py (100%) rename {thealgorithms/sorts => sorts}/merge_sort_fastest.py (100%) rename {thealgorithms/sorts => sorts}/normal_distribution_quick_sort.md (100%) rename {thealgorithms/sorts => sorts}/pancake_sort.py (100%) rename {thealgorithms/sorts => sorts}/quick_sort.py (100%) rename {thealgorithms/sorts => sorts}/quick_sort_3_partition.py (100%) rename {thealgorithms/sorts => sorts}/radix_sort.py (100%) rename {thealgorithms/sorts => sorts}/random_normal_distribution_quicksort.py (100%) rename {thealgorithms/sorts => sorts}/selection_sort.py (100%) rename {thealgorithms/sorts => sorts}/shell_sort.py (100%) rename {thealgorithms/sorts => sorts}/sorting_graphs.png (100%) rename {thealgorithms/sorts => sorts}/timsort.py (100%) rename {thealgorithms/sorts => sorts}/topological_sort.py (100%) rename {thealgorithms/sorts => sorts}/tree_sort.py (100%) rename {thealgorithms/sorts => strings}/__init__.py (100%) rename {thealgorithms/strings => strings}/knuth_morris_pratt.py (100%) rename {thealgorithms/strings => strings}/levenshtein_distance.py (100%) rename {thealgorithms/strings => strings}/manacher.py (100%) rename {thealgorithms/strings => strings}/min_cost_string_conversion.py (100%) rename {thealgorithms/strings => strings}/rabin_karp.py (100%) delete mode 100644 thealgorithms/traversals/__init__.py rename {thealgorithms/strings => traversals}/__init__.py (100%) rename {thealgorithms/traversals => traversals}/binary_tree_traversals.py (100%) diff --git a/thealgorithms/Graphs/BFS.py b/Graphs/BFS.py similarity index 100% rename from thealgorithms/Graphs/BFS.py rename to Graphs/BFS.py diff --git a/thealgorithms/Graphs/DFS.py b/Graphs/DFS.py similarity index 100% rename from thealgorithms/Graphs/DFS.py rename to Graphs/DFS.py diff --git a/thealgorithms/Graphs/__init__.py b/Graphs/__init__.py similarity index 100% rename from thealgorithms/Graphs/__init__.py rename to Graphs/__init__.py diff --git a/thealgorithms/Maths/3n+1.py b/Maths/3n+1.py similarity index 100% rename from thealgorithms/Maths/3n+1.py rename to Maths/3n+1.py diff --git a/thealgorithms/Maths/FindMax.py b/Maths/FindMax.py similarity index 100% rename from thealgorithms/Maths/FindMax.py rename to Maths/FindMax.py diff --git a/thealgorithms/Maths/FindMin.py b/Maths/FindMin.py similarity index 100% rename from thealgorithms/Maths/FindMin.py rename to Maths/FindMin.py diff --git a/thealgorithms/Maths/__init__.py b/Maths/__init__.py similarity index 100% rename from thealgorithms/Maths/__init__.py rename to Maths/__init__.py diff --git a/thealgorithms/Maths/abs.py b/Maths/abs.py similarity index 100% rename from thealgorithms/Maths/abs.py rename to Maths/abs.py diff --git a/thealgorithms/Maths/absMax.py b/Maths/absMax.py similarity index 100% rename from thealgorithms/Maths/absMax.py rename to Maths/absMax.py diff --git a/thealgorithms/Maths/absMin.py b/Maths/absMin.py similarity index 100% rename from thealgorithms/Maths/absMin.py rename to Maths/absMin.py diff --git a/thealgorithms/Maths/average.py b/Maths/average.py similarity index 100% rename from thealgorithms/Maths/average.py rename to Maths/average.py diff --git a/thealgorithms/Maths/find_hcf.py b/Maths/find_hcf.py similarity index 100% rename from thealgorithms/Maths/find_hcf.py rename to Maths/find_hcf.py diff --git a/thealgorithms/Maths/find_lcm.py b/Maths/find_lcm.py similarity index 100% rename from thealgorithms/Maths/find_lcm.py rename to Maths/find_lcm.py diff --git a/thealgorithms/analysis/compression_analysis/PSNR-example-base.png b/analysis/compression_analysis/PSNR-example-base.png similarity index 100% rename from thealgorithms/analysis/compression_analysis/PSNR-example-base.png rename to analysis/compression_analysis/PSNR-example-base.png diff --git a/thealgorithms/analysis/compression_analysis/PSNR-example-comp-10.jpg b/analysis/compression_analysis/PSNR-example-comp-10.jpg similarity index 100% rename from thealgorithms/analysis/compression_analysis/PSNR-example-comp-10.jpg rename to analysis/compression_analysis/PSNR-example-comp-10.jpg diff --git a/thealgorithms/__init__.py b/analysis/compression_analysis/__init__.py similarity index 100% rename from thealgorithms/__init__.py rename to analysis/compression_analysis/__init__.py diff --git a/thealgorithms/analysis/compression_analysis/compressed_image.png b/analysis/compression_analysis/compressed_image.png similarity index 100% rename from thealgorithms/analysis/compression_analysis/compressed_image.png rename to analysis/compression_analysis/compressed_image.png diff --git a/thealgorithms/analysis/compression_analysis/example_image.jpg b/analysis/compression_analysis/example_image.jpg similarity index 100% rename from thealgorithms/analysis/compression_analysis/example_image.jpg rename to analysis/compression_analysis/example_image.jpg diff --git a/thealgorithms/analysis/compression_analysis/example_wikipedia_image.jpg b/analysis/compression_analysis/example_wikipedia_image.jpg similarity index 100% rename from thealgorithms/analysis/compression_analysis/example_wikipedia_image.jpg rename to analysis/compression_analysis/example_wikipedia_image.jpg diff --git a/thealgorithms/analysis/compression_analysis/original_image.png b/analysis/compression_analysis/original_image.png similarity index 100% rename from thealgorithms/analysis/compression_analysis/original_image.png rename to analysis/compression_analysis/original_image.png diff --git a/thealgorithms/analysis/compression_analysis/psnr.py b/analysis/compression_analysis/psnr.py similarity index 100% rename from thealgorithms/analysis/compression_analysis/psnr.py rename to analysis/compression_analysis/psnr.py diff --git a/thealgorithms/analysis/compression_analysis/__init__.py b/arithmetic_analysis/__init__.py similarity index 100% rename from thealgorithms/analysis/compression_analysis/__init__.py rename to arithmetic_analysis/__init__.py diff --git a/thealgorithms/arithmetic_analysis/bisection.py b/arithmetic_analysis/bisection.py similarity index 100% rename from thealgorithms/arithmetic_analysis/bisection.py rename to arithmetic_analysis/bisection.py diff --git a/thealgorithms/arithmetic_analysis/intersection.py b/arithmetic_analysis/intersection.py similarity index 100% rename from thealgorithms/arithmetic_analysis/intersection.py rename to arithmetic_analysis/intersection.py diff --git a/thealgorithms/arithmetic_analysis/lu_decomposition.py b/arithmetic_analysis/lu_decomposition.py similarity index 100% rename from thealgorithms/arithmetic_analysis/lu_decomposition.py rename to arithmetic_analysis/lu_decomposition.py diff --git a/thealgorithms/arithmetic_analysis/newton_method.py b/arithmetic_analysis/newton_method.py similarity index 100% rename from thealgorithms/arithmetic_analysis/newton_method.py rename to arithmetic_analysis/newton_method.py diff --git a/thealgorithms/arithmetic_analysis/newton_raphson_method.py b/arithmetic_analysis/newton_raphson_method.py similarity index 100% rename from thealgorithms/arithmetic_analysis/newton_raphson_method.py rename to arithmetic_analysis/newton_raphson_method.py diff --git a/thealgorithms/arithmetic_analysis/__init__.py b/binary_tree/__init__.py similarity index 100% rename from thealgorithms/arithmetic_analysis/__init__.py rename to binary_tree/__init__.py diff --git a/thealgorithms/binary_tree/basic_binary_tree.py b/binary_tree/basic_binary_tree.py similarity index 100% rename from thealgorithms/binary_tree/basic_binary_tree.py rename to binary_tree/basic_binary_tree.py diff --git a/thealgorithms/binary_tree/__init__.py b/boolean_algebra/__init__.py similarity index 100% rename from thealgorithms/binary_tree/__init__.py rename to boolean_algebra/__init__.py diff --git a/thealgorithms/boolean_algebra/quine_mc_cluskey.py b/boolean_algebra/quine_mc_cluskey.py similarity index 100% rename from thealgorithms/boolean_algebra/quine_mc_cluskey.py rename to boolean_algebra/quine_mc_cluskey.py diff --git a/thealgorithms/boolean_algebra/__init__.py b/ciphers/__init__.py similarity index 100% rename from thealgorithms/boolean_algebra/__init__.py rename to ciphers/__init__.py diff --git a/thealgorithms/ciphers/affine_cipher.py b/ciphers/affine_cipher.py similarity index 100% rename from thealgorithms/ciphers/affine_cipher.py rename to ciphers/affine_cipher.py diff --git a/thealgorithms/ciphers/base16.py b/ciphers/base16.py similarity index 100% rename from thealgorithms/ciphers/base16.py rename to ciphers/base16.py diff --git a/thealgorithms/ciphers/base32.py b/ciphers/base32.py similarity index 100% rename from thealgorithms/ciphers/base32.py rename to ciphers/base32.py diff --git a/thealgorithms/ciphers/base64_cipher.py b/ciphers/base64_cipher.py similarity index 100% rename from thealgorithms/ciphers/base64_cipher.py rename to ciphers/base64_cipher.py diff --git a/thealgorithms/ciphers/base85.py b/ciphers/base85.py similarity index 100% rename from thealgorithms/ciphers/base85.py rename to ciphers/base85.py diff --git a/thealgorithms/ciphers/brute_force_caesar_cipher.py b/ciphers/brute_force_caesar_cipher.py similarity index 100% rename from thealgorithms/ciphers/brute_force_caesar_cipher.py rename to ciphers/brute_force_caesar_cipher.py diff --git a/thealgorithms/ciphers/caesar_cipher.py b/ciphers/caesar_cipher.py similarity index 100% rename from thealgorithms/ciphers/caesar_cipher.py rename to ciphers/caesar_cipher.py diff --git a/thealgorithms/ciphers/cryptomath_module.py b/ciphers/cryptomath_module.py similarity index 100% rename from thealgorithms/ciphers/cryptomath_module.py rename to ciphers/cryptomath_module.py diff --git a/thealgorithms/ciphers/elgamal_key_generator.py b/ciphers/elgamal_key_generator.py similarity index 100% rename from thealgorithms/ciphers/elgamal_key_generator.py rename to ciphers/elgamal_key_generator.py diff --git a/thealgorithms/ciphers/hill_cipher.py b/ciphers/hill_cipher.py similarity index 100% rename from thealgorithms/ciphers/hill_cipher.py rename to ciphers/hill_cipher.py diff --git a/thealgorithms/ciphers/onepad_cipher.py b/ciphers/onepad_cipher.py similarity index 100% rename from thealgorithms/ciphers/onepad_cipher.py rename to ciphers/onepad_cipher.py diff --git a/thealgorithms/ciphers/playfair_cipher.py b/ciphers/playfair_cipher.py similarity index 100% rename from thealgorithms/ciphers/playfair_cipher.py rename to ciphers/playfair_cipher.py diff --git a/thealgorithms/ciphers/prehistoric_men.txt b/ciphers/prehistoric_men.txt similarity index 100% rename from thealgorithms/ciphers/prehistoric_men.txt rename to ciphers/prehistoric_men.txt diff --git a/thealgorithms/ciphers/rabin_miller.py b/ciphers/rabin_miller.py similarity index 100% rename from thealgorithms/ciphers/rabin_miller.py rename to ciphers/rabin_miller.py diff --git a/thealgorithms/ciphers/rot13.py b/ciphers/rot13.py similarity index 100% rename from thealgorithms/ciphers/rot13.py rename to ciphers/rot13.py diff --git a/thealgorithms/ciphers/rsa_cipher.py b/ciphers/rsa_cipher.py similarity index 100% rename from thealgorithms/ciphers/rsa_cipher.py rename to ciphers/rsa_cipher.py diff --git a/thealgorithms/ciphers/rsa_key_generator.py b/ciphers/rsa_key_generator.py similarity index 100% rename from thealgorithms/ciphers/rsa_key_generator.py rename to ciphers/rsa_key_generator.py diff --git a/thealgorithms/ciphers/simple_substitution_cipher.py b/ciphers/simple_substitution_cipher.py similarity index 100% rename from thealgorithms/ciphers/simple_substitution_cipher.py rename to ciphers/simple_substitution_cipher.py diff --git a/thealgorithms/ciphers/transposition_cipher.py b/ciphers/transposition_cipher.py similarity index 100% rename from thealgorithms/ciphers/transposition_cipher.py rename to ciphers/transposition_cipher.py diff --git a/thealgorithms/ciphers/transposition_cipher_encrypt_decrypt_file.py b/ciphers/transposition_cipher_encrypt_decrypt_file.py similarity index 100% rename from thealgorithms/ciphers/transposition_cipher_encrypt_decrypt_file.py rename to ciphers/transposition_cipher_encrypt_decrypt_file.py diff --git a/thealgorithms/ciphers/vigenere_cipher.py b/ciphers/vigenere_cipher.py similarity index 100% rename from thealgorithms/ciphers/vigenere_cipher.py rename to ciphers/vigenere_cipher.py diff --git a/thealgorithms/ciphers/xor_cipher.py b/ciphers/xor_cipher.py similarity index 100% rename from thealgorithms/ciphers/xor_cipher.py rename to ciphers/xor_cipher.py diff --git a/thealgorithms/ciphers/__init__.py b/data_structures/__init__.py similarity index 100% rename from thealgorithms/ciphers/__init__.py rename to data_structures/__init__.py diff --git a/thealgorithms/data_structures/arrays.py b/data_structures/arrays.py similarity index 100% rename from thealgorithms/data_structures/arrays.py rename to data_structures/arrays.py diff --git a/thealgorithms/data_structures/avl.py b/data_structures/avl.py similarity index 100% rename from thealgorithms/data_structures/avl.py rename to data_structures/avl.py diff --git a/thealgorithms/data_structures/binary_tree/AVLtree.py b/data_structures/binary_tree/AVLtree.py similarity index 100% rename from thealgorithms/data_structures/binary_tree/AVLtree.py rename to data_structures/binary_tree/AVLtree.py diff --git a/thealgorithms/data_structures/__init__.py b/data_structures/binary_tree/__init__.py similarity index 100% rename from thealgorithms/data_structures/__init__.py rename to data_structures/binary_tree/__init__.py diff --git a/thealgorithms/data_structures/binary_tree/binary_search_tree.py b/data_structures/binary_tree/binary_search_tree.py similarity index 100% rename from thealgorithms/data_structures/binary_tree/binary_search_tree.py rename to data_structures/binary_tree/binary_search_tree.py diff --git a/thealgorithms/data_structures/binary_tree/fenwick_tree.py b/data_structures/binary_tree/fenwick_tree.py similarity index 100% rename from thealgorithms/data_structures/binary_tree/fenwick_tree.py rename to data_structures/binary_tree/fenwick_tree.py diff --git a/thealgorithms/data_structures/binary_tree/lazy_segment_tree.py b/data_structures/binary_tree/lazy_segment_tree.py similarity index 100% rename from thealgorithms/data_structures/binary_tree/lazy_segment_tree.py rename to data_structures/binary_tree/lazy_segment_tree.py diff --git a/thealgorithms/data_structures/binary_tree/segment_tree.py b/data_structures/binary_tree/segment_tree.py similarity index 100% rename from thealgorithms/data_structures/binary_tree/segment_tree.py rename to data_structures/binary_tree/segment_tree.py diff --git a/thealgorithms/data_structures/binary_tree/__init__.py b/data_structures/graph/__init__.py similarity index 100% rename from thealgorithms/data_structures/binary_tree/__init__.py rename to data_structures/graph/__init__.py diff --git a/thealgorithms/data_structures/graph/bellman_ford.py b/data_structures/graph/bellman_ford.py similarity index 100% rename from thealgorithms/data_structures/graph/bellman_ford.py rename to data_structures/graph/bellman_ford.py diff --git a/thealgorithms/data_structures/graph/breadth_first_search.py b/data_structures/graph/breadth_first_search.py similarity index 100% rename from thealgorithms/data_structures/graph/breadth_first_search.py rename to data_structures/graph/breadth_first_search.py diff --git a/thealgorithms/data_structures/graph/depth_first_search.py b/data_structures/graph/depth_first_search.py similarity index 100% rename from thealgorithms/data_structures/graph/depth_first_search.py rename to data_structures/graph/depth_first_search.py diff --git a/thealgorithms/data_structures/graph/dijkstra.py b/data_structures/graph/dijkstra.py similarity index 100% rename from thealgorithms/data_structures/graph/dijkstra.py rename to data_structures/graph/dijkstra.py diff --git a/thealgorithms/data_structures/graph/dijkstra_algorithm.py b/data_structures/graph/dijkstra_algorithm.py similarity index 100% rename from thealgorithms/data_structures/graph/dijkstra_algorithm.py rename to data_structures/graph/dijkstra_algorithm.py diff --git a/thealgorithms/data_structures/graph/even_tree.py b/data_structures/graph/even_tree.py similarity index 100% rename from thealgorithms/data_structures/graph/even_tree.py rename to data_structures/graph/even_tree.py diff --git a/thealgorithms/data_structures/graph/floyd_warshall.py b/data_structures/graph/floyd_warshall.py similarity index 100% rename from thealgorithms/data_structures/graph/floyd_warshall.py rename to data_structures/graph/floyd_warshall.py diff --git a/thealgorithms/data_structures/graph/graph.py b/data_structures/graph/graph.py similarity index 100% rename from thealgorithms/data_structures/graph/graph.py rename to data_structures/graph/graph.py diff --git a/thealgorithms/data_structures/graph/graph_list.py b/data_structures/graph/graph_list.py similarity index 100% rename from thealgorithms/data_structures/graph/graph_list.py rename to data_structures/graph/graph_list.py diff --git a/thealgorithms/data_structures/graph/graph_matrix.py b/data_structures/graph/graph_matrix.py similarity index 100% rename from thealgorithms/data_structures/graph/graph_matrix.py rename to data_structures/graph/graph_matrix.py diff --git a/thealgorithms/data_structures/hashing/__init__.py b/data_structures/hashing/__init__.py similarity index 100% rename from thealgorithms/data_structures/hashing/__init__.py rename to data_structures/hashing/__init__.py diff --git a/thealgorithms/data_structures/hashing/double_hash.py b/data_structures/hashing/double_hash.py similarity index 100% rename from thealgorithms/data_structures/hashing/double_hash.py rename to data_structures/hashing/double_hash.py diff --git a/thealgorithms/data_structures/hashing/hash_table.py b/data_structures/hashing/hash_table.py similarity index 100% rename from thealgorithms/data_structures/hashing/hash_table.py rename to data_structures/hashing/hash_table.py diff --git a/thealgorithms/data_structures/hashing/hash_table_with_linked_list.py b/data_structures/hashing/hash_table_with_linked_list.py similarity index 100% rename from thealgorithms/data_structures/hashing/hash_table_with_linked_list.py rename to data_structures/hashing/hash_table_with_linked_list.py diff --git a/thealgorithms/data_structures/graph/__init__.py b/data_structures/hashing/number_theory/__init__.py similarity index 100% rename from thealgorithms/data_structures/graph/__init__.py rename to data_structures/hashing/number_theory/__init__.py diff --git a/thealgorithms/data_structures/hashing/number_theory/prime_numbers.py b/data_structures/hashing/number_theory/prime_numbers.py similarity index 100% rename from thealgorithms/data_structures/hashing/number_theory/prime_numbers.py rename to data_structures/hashing/number_theory/prime_numbers.py diff --git a/thealgorithms/data_structures/hashing/quadratic_probing.py b/data_structures/hashing/quadratic_probing.py similarity index 100% rename from thealgorithms/data_structures/hashing/quadratic_probing.py rename to data_structures/hashing/quadratic_probing.py diff --git a/thealgorithms/data_structures/hashing/number_theory/__init__.py b/data_structures/heap/__init__.py similarity index 100% rename from thealgorithms/data_structures/hashing/number_theory/__init__.py rename to data_structures/heap/__init__.py diff --git a/thealgorithms/data_structures/heap/heap.py b/data_structures/heap/heap.py similarity index 100% rename from thealgorithms/data_structures/heap/heap.py rename to data_structures/heap/heap.py diff --git a/thealgorithms/data_structures/linked_list/__init__.py b/data_structures/linked_list/__init__.py similarity index 100% rename from thealgorithms/data_structures/linked_list/__init__.py rename to data_structures/linked_list/__init__.py diff --git a/thealgorithms/data_structures/linked_list/doubly_linked_list.py b/data_structures/linked_list/doubly_linked_list.py similarity index 100% rename from thealgorithms/data_structures/linked_list/doubly_linked_list.py rename to data_structures/linked_list/doubly_linked_list.py diff --git a/thealgorithms/data_structures/linked_list/singly_linked_list.py b/data_structures/linked_list/singly_linked_list.py similarity index 100% rename from thealgorithms/data_structures/linked_list/singly_linked_list.py rename to data_structures/linked_list/singly_linked_list.py diff --git a/thealgorithms/data_structures/linked_list/swapNodes.py b/data_structures/linked_list/swapNodes.py similarity index 100% rename from thealgorithms/data_structures/linked_list/swapNodes.py rename to data_structures/linked_list/swapNodes.py diff --git a/thealgorithms/data_structures/heap/__init__.py b/data_structures/queue/__init__.py similarity index 100% rename from thealgorithms/data_structures/heap/__init__.py rename to data_structures/queue/__init__.py diff --git a/thealgorithms/data_structures/queue/deqeue.py b/data_structures/queue/deqeue.py similarity index 100% rename from thealgorithms/data_structures/queue/deqeue.py rename to data_structures/queue/deqeue.py diff --git a/thealgorithms/data_structures/queue/queue_on_list.py b/data_structures/queue/queue_on_list.py similarity index 100% rename from thealgorithms/data_structures/queue/queue_on_list.py rename to data_structures/queue/queue_on_list.py diff --git a/thealgorithms/data_structures/queue/queue_on_pseudo_stack.py b/data_structures/queue/queue_on_pseudo_stack.py similarity index 100% rename from thealgorithms/data_structures/queue/queue_on_pseudo_stack.py rename to data_structures/queue/queue_on_pseudo_stack.py diff --git a/thealgorithms/data_structures/stacks/__init__.py b/data_structures/stacks/__init__.py similarity index 100% rename from thealgorithms/data_structures/stacks/__init__.py rename to data_structures/stacks/__init__.py diff --git a/thealgorithms/data_structures/stacks/balanced_parentheses.py b/data_structures/stacks/balanced_parentheses.py similarity index 100% rename from thealgorithms/data_structures/stacks/balanced_parentheses.py rename to data_structures/stacks/balanced_parentheses.py diff --git a/thealgorithms/data_structures/stacks/infix_to_postfix_conversion.py b/data_structures/stacks/infix_to_postfix_conversion.py similarity index 100% rename from thealgorithms/data_structures/stacks/infix_to_postfix_conversion.py rename to data_structures/stacks/infix_to_postfix_conversion.py diff --git a/thealgorithms/data_structures/stacks/next.py b/data_structures/stacks/next.py similarity index 100% rename from thealgorithms/data_structures/stacks/next.py rename to data_structures/stacks/next.py diff --git a/thealgorithms/data_structures/stacks/stack.py b/data_structures/stacks/stack.py similarity index 100% rename from thealgorithms/data_structures/stacks/stack.py rename to data_structures/stacks/stack.py diff --git a/thealgorithms/data_structures/stacks/stock_span_problem.py b/data_structures/stacks/stock_span_problem.py similarity index 100% rename from thealgorithms/data_structures/stacks/stock_span_problem.py rename to data_structures/stacks/stock_span_problem.py diff --git a/thealgorithms/data_structures/queue/__init__.py b/data_structures/trie/__init__.py similarity index 100% rename from thealgorithms/data_structures/queue/__init__.py rename to data_structures/trie/__init__.py diff --git a/thealgorithms/data_structures/trie/trie.py b/data_structures/trie/trie.py similarity index 100% rename from thealgorithms/data_structures/trie/trie.py rename to data_structures/trie/trie.py diff --git a/thealgorithms/data_structures/trie/__init__.py b/data_structures/union_find/__init__.py similarity index 100% rename from thealgorithms/data_structures/trie/__init__.py rename to data_structures/union_find/__init__.py diff --git a/thealgorithms/data_structures/union_find/tests_union_find.py b/data_structures/union_find/tests_union_find.py similarity index 100% rename from thealgorithms/data_structures/union_find/tests_union_find.py rename to data_structures/union_find/tests_union_find.py diff --git a/thealgorithms/data_structures/union_find/union_find.py b/data_structures/union_find/union_find.py similarity index 100% rename from thealgorithms/data_structures/union_find/union_find.py rename to data_structures/union_find/union_find.py diff --git a/thealgorithms/data_structures/union_find/__init__.py b/digital_image_processing/__init__.py similarity index 100% rename from thealgorithms/data_structures/union_find/__init__.py rename to digital_image_processing/__init__.py diff --git a/thealgorithms/digital_image_processing/__init__.py b/digital_image_processing/filters/__init__.py similarity index 100% rename from thealgorithms/digital_image_processing/__init__.py rename to digital_image_processing/filters/__init__.py diff --git a/thealgorithms/digital_image_processing/filters/median_filter.py b/digital_image_processing/filters/median_filter.py similarity index 100% rename from thealgorithms/digital_image_processing/filters/median_filter.py rename to digital_image_processing/filters/median_filter.py diff --git a/thealgorithms/dynamic_programming/FractionalKnapsack.py b/dynamic_programming/FractionalKnapsack.py similarity index 100% rename from thealgorithms/dynamic_programming/FractionalKnapsack.py rename to dynamic_programming/FractionalKnapsack.py diff --git a/thealgorithms/digital_image_processing/filters/__init__.py b/dynamic_programming/__init__.py similarity index 100% rename from thealgorithms/digital_image_processing/filters/__init__.py rename to dynamic_programming/__init__.py diff --git a/thealgorithms/dynamic_programming/abbreviation.py b/dynamic_programming/abbreviation.py similarity index 100% rename from thealgorithms/dynamic_programming/abbreviation.py rename to dynamic_programming/abbreviation.py diff --git a/thealgorithms/dynamic_programming/coin_change.py b/dynamic_programming/coin_change.py similarity index 100% rename from thealgorithms/dynamic_programming/coin_change.py rename to dynamic_programming/coin_change.py diff --git a/thealgorithms/dynamic_programming/edit_distance.py b/dynamic_programming/edit_distance.py similarity index 100% rename from thealgorithms/dynamic_programming/edit_distance.py rename to dynamic_programming/edit_distance.py diff --git a/thealgorithms/dynamic_programming/fastfibonacci.py b/dynamic_programming/fastfibonacci.py similarity index 100% rename from thealgorithms/dynamic_programming/fastfibonacci.py rename to dynamic_programming/fastfibonacci.py diff --git a/thealgorithms/dynamic_programming/fibonacci.py b/dynamic_programming/fibonacci.py similarity index 100% rename from thealgorithms/dynamic_programming/fibonacci.py rename to dynamic_programming/fibonacci.py diff --git a/thealgorithms/dynamic_programming/floyd_warshall.py b/dynamic_programming/floyd_warshall.py similarity index 100% rename from thealgorithms/dynamic_programming/floyd_warshall.py rename to dynamic_programming/floyd_warshall.py diff --git a/thealgorithms/dynamic_programming/integer_partition.py b/dynamic_programming/integer_partition.py similarity index 100% rename from thealgorithms/dynamic_programming/integer_partition.py rename to dynamic_programming/integer_partition.py diff --git a/thealgorithms/dynamic_programming/k_means_clustering_tensorflow.py b/dynamic_programming/k_means_clustering_tensorflow.py similarity index 100% rename from thealgorithms/dynamic_programming/k_means_clustering_tensorflow.py rename to dynamic_programming/k_means_clustering_tensorflow.py diff --git a/thealgorithms/dynamic_programming/knapsack.py b/dynamic_programming/knapsack.py similarity index 100% rename from thealgorithms/dynamic_programming/knapsack.py rename to dynamic_programming/knapsack.py diff --git a/thealgorithms/dynamic_programming/longest_common_subsequence.py b/dynamic_programming/longest_common_subsequence.py similarity index 100% rename from thealgorithms/dynamic_programming/longest_common_subsequence.py rename to dynamic_programming/longest_common_subsequence.py diff --git a/thealgorithms/dynamic_programming/longest_increasing_subsequence.py b/dynamic_programming/longest_increasing_subsequence.py similarity index 100% rename from thealgorithms/dynamic_programming/longest_increasing_subsequence.py rename to dynamic_programming/longest_increasing_subsequence.py diff --git a/thealgorithms/dynamic_programming/longest_increasing_subsequence_O(nlogn).py b/dynamic_programming/longest_increasing_subsequence_O(nlogn).py similarity index 100% rename from thealgorithms/dynamic_programming/longest_increasing_subsequence_O(nlogn).py rename to dynamic_programming/longest_increasing_subsequence_O(nlogn).py diff --git a/thealgorithms/dynamic_programming/longest_sub_array.py b/dynamic_programming/longest_sub_array.py similarity index 100% rename from thealgorithms/dynamic_programming/longest_sub_array.py rename to dynamic_programming/longest_sub_array.py diff --git a/thealgorithms/dynamic_programming/matrix_chain_order.py b/dynamic_programming/matrix_chain_order.py similarity index 100% rename from thealgorithms/dynamic_programming/matrix_chain_order.py rename to dynamic_programming/matrix_chain_order.py diff --git a/thealgorithms/dynamic_programming/max_sub_array.py b/dynamic_programming/max_sub_array.py similarity index 100% rename from thealgorithms/dynamic_programming/max_sub_array.py rename to dynamic_programming/max_sub_array.py diff --git a/thealgorithms/dynamic_programming/minimum_partition.py b/dynamic_programming/minimum_partition.py similarity index 100% rename from thealgorithms/dynamic_programming/minimum_partition.py rename to dynamic_programming/minimum_partition.py diff --git a/thealgorithms/dynamic_programming/rod_cutting.py b/dynamic_programming/rod_cutting.py similarity index 100% rename from thealgorithms/dynamic_programming/rod_cutting.py rename to dynamic_programming/rod_cutting.py diff --git a/thealgorithms/factorial_python.py b/factorial_python.py similarity index 100% rename from thealgorithms/factorial_python.py rename to factorial_python.py diff --git a/thealgorithms/dynamic_programming/__init__.py b/file_transfer_protocol/__init__.py similarity index 100% rename from thealgorithms/dynamic_programming/__init__.py rename to file_transfer_protocol/__init__.py diff --git a/thealgorithms/file_transfer_protocol/ftp_client_server.py b/file_transfer_protocol/ftp_client_server.py similarity index 100% rename from thealgorithms/file_transfer_protocol/ftp_client_server.py rename to file_transfer_protocol/ftp_client_server.py diff --git a/thealgorithms/file_transfer_protocol/ftp_send_receive.py b/file_transfer_protocol/ftp_send_receive.py similarity index 100% rename from thealgorithms/file_transfer_protocol/ftp_send_receive.py rename to file_transfer_protocol/ftp_send_receive.py diff --git a/thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py b/graphs/Directed_and_Undirected_Weighted_Graph.py similarity index 100% rename from thealgorithms/graphs/Directed_and_Undirected_Weighted_Graph.py rename to graphs/Directed_and_Undirected_Weighted_Graph.py diff --git a/thealgorithms/file_transfer_protocol/__init__.py b/graphs/__init__.py similarity index 100% rename from thealgorithms/file_transfer_protocol/__init__.py rename to graphs/__init__.py diff --git a/thealgorithms/graphs/a_star.py b/graphs/a_star.py similarity index 100% rename from thealgorithms/graphs/a_star.py rename to graphs/a_star.py diff --git a/thealgorithms/graphs/articulation_points.py b/graphs/articulation_points.py similarity index 100% rename from thealgorithms/graphs/articulation_points.py rename to graphs/articulation_points.py diff --git a/thealgorithms/graphs/basic_graphs.py b/graphs/basic_graphs.py similarity index 100% rename from thealgorithms/graphs/basic_graphs.py rename to graphs/basic_graphs.py diff --git a/thealgorithms/graphs/check_bipartite_graph_bfs.py b/graphs/check_bipartite_graph_bfs.py similarity index 100% rename from thealgorithms/graphs/check_bipartite_graph_bfs.py rename to graphs/check_bipartite_graph_bfs.py diff --git a/thealgorithms/graphs/dijkstra.py b/graphs/dijkstra.py similarity index 100% rename from thealgorithms/graphs/dijkstra.py rename to graphs/dijkstra.py diff --git a/thealgorithms/graphs/finding_bridges.py b/graphs/finding_bridges.py similarity index 100% rename from thealgorithms/graphs/finding_bridges.py rename to graphs/finding_bridges.py diff --git a/thealgorithms/graphs/kahns_algorithm_long.py b/graphs/kahns_algorithm_long.py similarity index 100% rename from thealgorithms/graphs/kahns_algorithm_long.py rename to graphs/kahns_algorithm_long.py diff --git a/thealgorithms/graphs/kahns_algorithm_topo.py b/graphs/kahns_algorithm_topo.py similarity index 100% rename from thealgorithms/graphs/kahns_algorithm_topo.py rename to graphs/kahns_algorithm_topo.py diff --git a/thealgorithms/graphs/minimum_spanning_tree_kruskal.py b/graphs/minimum_spanning_tree_kruskal.py similarity index 100% rename from thealgorithms/graphs/minimum_spanning_tree_kruskal.py rename to graphs/minimum_spanning_tree_kruskal.py diff --git a/thealgorithms/graphs/minimum_spanning_tree_prims.py b/graphs/minimum_spanning_tree_prims.py similarity index 100% rename from thealgorithms/graphs/minimum_spanning_tree_prims.py rename to graphs/minimum_spanning_tree_prims.py diff --git a/thealgorithms/graphs/multi_hueristic_astar.py b/graphs/multi_hueristic_astar.py similarity index 100% rename from thealgorithms/graphs/multi_hueristic_astar.py rename to graphs/multi_hueristic_astar.py diff --git a/thealgorithms/graphs/scc_kosaraju.py b/graphs/scc_kosaraju.py similarity index 100% rename from thealgorithms/graphs/scc_kosaraju.py rename to graphs/scc_kosaraju.py diff --git a/thealgorithms/graphs/tarjans_scc.py b/graphs/tarjans_scc.py similarity index 100% rename from thealgorithms/graphs/tarjans_scc.py rename to graphs/tarjans_scc.py diff --git a/thealgorithms/graphs/__init__.py b/hashes/__init__.py similarity index 100% rename from thealgorithms/graphs/__init__.py rename to hashes/__init__.py diff --git a/thealgorithms/hashes/chaos_machine.py b/hashes/chaos_machine.py similarity index 100% rename from thealgorithms/hashes/chaos_machine.py rename to hashes/chaos_machine.py diff --git a/thealgorithms/hashes/md5.py b/hashes/md5.py similarity index 100% rename from thealgorithms/hashes/md5.py rename to hashes/md5.py diff --git a/thealgorithms/hashes/sha1.py b/hashes/sha1.py similarity index 100% rename from thealgorithms/hashes/sha1.py rename to hashes/sha1.py diff --git a/thealgorithms/linear_algebra_python/README.md b/linear_algebra_python/README.md similarity index 100% rename from thealgorithms/linear_algebra_python/README.md rename to linear_algebra_python/README.md diff --git a/thealgorithms/hashes/__init__.py b/linear_algebra_python/src/__init__.py similarity index 100% rename from thealgorithms/hashes/__init__.py rename to linear_algebra_python/src/__init__.py diff --git a/thealgorithms/linear_algebra_python/src/lib.py b/linear_algebra_python/src/lib.py similarity index 100% rename from thealgorithms/linear_algebra_python/src/lib.py rename to linear_algebra_python/src/lib.py diff --git a/thealgorithms/linear_algebra_python/src/tests.py b/linear_algebra_python/src/tests.py similarity index 100% rename from thealgorithms/linear_algebra_python/src/tests.py rename to linear_algebra_python/src/tests.py diff --git a/thealgorithms/machine_learning/NaiveBayes.ipynb b/machine_learning/NaiveBayes.ipynb similarity index 100% rename from thealgorithms/machine_learning/NaiveBayes.ipynb rename to machine_learning/NaiveBayes.ipynb diff --git a/thealgorithms/machine_learning/Random_Forest_Classification/Random Forest Classifier.ipynb b/machine_learning/Random_Forest_Classification/Random Forest Classifier.ipynb similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Classification/Random Forest Classifier.ipynb rename to machine_learning/Random_Forest_Classification/Random Forest Classifier.ipynb diff --git a/thealgorithms/machine_learning/Random_Forest_Classification/Social_Network_Ads.csv b/machine_learning/Random_Forest_Classification/Social_Network_Ads.csv similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Classification/Social_Network_Ads.csv rename to machine_learning/Random_Forest_Classification/Social_Network_Ads.csv diff --git a/thealgorithms/linear_algebra_python/src/__init__.py b/machine_learning/Random_Forest_Classification/__init__.py similarity index 100% rename from thealgorithms/linear_algebra_python/src/__init__.py rename to machine_learning/Random_Forest_Classification/__init__.py diff --git a/thealgorithms/machine_learning/Random_Forest_Classification/random_forest_classification.py b/machine_learning/Random_Forest_Classification/random_forest_classification.py similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Classification/random_forest_classification.py rename to machine_learning/Random_Forest_Classification/random_forest_classification.py diff --git a/thealgorithms/machine_learning/Random_Forest_Regression/Position_Salaries.csv b/machine_learning/Random_Forest_Regression/Position_Salaries.csv similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Regression/Position_Salaries.csv rename to machine_learning/Random_Forest_Regression/Position_Salaries.csv diff --git a/thealgorithms/machine_learning/Random_Forest_Regression/Random Forest Regression.ipynb b/machine_learning/Random_Forest_Regression/Random Forest Regression.ipynb similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Regression/Random Forest Regression.ipynb rename to machine_learning/Random_Forest_Regression/Random Forest Regression.ipynb diff --git a/thealgorithms/machine_learning/Random_Forest_Classification/__init__.py b/machine_learning/Random_Forest_Regression/__init__.py similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Classification/__init__.py rename to machine_learning/Random_Forest_Regression/__init__.py diff --git a/thealgorithms/machine_learning/Random_Forest_Regression/random_forest_regression.py b/machine_learning/Random_Forest_Regression/random_forest_regression.py similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Regression/random_forest_regression.py rename to machine_learning/Random_Forest_Regression/random_forest_regression.py diff --git a/thealgorithms/machine_learning/Random_Forest_Regression/__init__.py b/machine_learning/__init__.py similarity index 100% rename from thealgorithms/machine_learning/Random_Forest_Regression/__init__.py rename to machine_learning/__init__.py diff --git a/thealgorithms/machine_learning/decision_tree.py b/machine_learning/decision_tree.py similarity index 100% rename from thealgorithms/machine_learning/decision_tree.py rename to machine_learning/decision_tree.py diff --git a/thealgorithms/machine_learning/gradient_descent.py b/machine_learning/gradient_descent.py similarity index 100% rename from thealgorithms/machine_learning/gradient_descent.py rename to machine_learning/gradient_descent.py diff --git a/thealgorithms/machine_learning/k_means_clust.py b/machine_learning/k_means_clust.py similarity index 100% rename from thealgorithms/machine_learning/k_means_clust.py rename to machine_learning/k_means_clust.py diff --git a/thealgorithms/machine_learning/linear_regression.py b/machine_learning/linear_regression.py similarity index 100% rename from thealgorithms/machine_learning/linear_regression.py rename to machine_learning/linear_regression.py diff --git a/thealgorithms/machine_learning/logistic_regression.py b/machine_learning/logistic_regression.py similarity index 100% rename from thealgorithms/machine_learning/logistic_regression.py rename to machine_learning/logistic_regression.py diff --git a/thealgorithms/machine_learning/perceptron.py b/machine_learning/perceptron.py similarity index 100% rename from thealgorithms/machine_learning/perceptron.py rename to machine_learning/perceptron.py diff --git a/thealgorithms/machine_learning/reuters_one_vs_rest_classifier.ipynb b/machine_learning/reuters_one_vs_rest_classifier.ipynb similarity index 100% rename from thealgorithms/machine_learning/reuters_one_vs_rest_classifier.ipynb rename to machine_learning/reuters_one_vs_rest_classifier.ipynb diff --git a/thealgorithms/machine_learning/scoring_functions.py b/machine_learning/scoring_functions.py similarity index 100% rename from thealgorithms/machine_learning/scoring_functions.py rename to machine_learning/scoring_functions.py diff --git a/thealgorithms/maths/PrimeCheck.py b/maths/PrimeCheck.py similarity index 100% rename from thealgorithms/maths/PrimeCheck.py rename to maths/PrimeCheck.py diff --git a/thealgorithms/machine_learning/__init__.py b/maths/__init__.py similarity index 100% rename from thealgorithms/machine_learning/__init__.py rename to maths/__init__.py diff --git a/thealgorithms/maths/basic_maths.py b/maths/basic_maths.py similarity index 100% rename from thealgorithms/maths/basic_maths.py rename to maths/basic_maths.py diff --git a/thealgorithms/maths/fibonacci_sequence_recursion.py b/maths/fibonacci_sequence_recursion.py similarity index 100% rename from thealgorithms/maths/fibonacci_sequence_recursion.py rename to maths/fibonacci_sequence_recursion.py diff --git a/thealgorithms/maths/greater_common_divisor.py b/maths/greater_common_divisor.py similarity index 100% rename from thealgorithms/maths/greater_common_divisor.py rename to maths/greater_common_divisor.py diff --git a/thealgorithms/maths/modular_exponential.py b/maths/modular_exponential.py similarity index 100% rename from thealgorithms/maths/modular_exponential.py rename to maths/modular_exponential.py diff --git a/thealgorithms/maths/newton_raphson.py b/maths/newton_raphson.py similarity index 100% rename from thealgorithms/maths/newton_raphson.py rename to maths/newton_raphson.py diff --git a/thealgorithms/maths/segmented_sieve.py b/maths/segmented_sieve.py similarity index 100% rename from thealgorithms/maths/segmented_sieve.py rename to maths/segmented_sieve.py diff --git a/thealgorithms/maths/sieve_of_eratosthenes.py b/maths/sieve_of_eratosthenes.py similarity index 100% rename from thealgorithms/maths/sieve_of_eratosthenes.py rename to maths/sieve_of_eratosthenes.py diff --git a/thealgorithms/maths/simpson_rule.py b/maths/simpson_rule.py similarity index 100% rename from thealgorithms/maths/simpson_rule.py rename to maths/simpson_rule.py diff --git a/thealgorithms/maths/trapezoidal_rule.py b/maths/trapezoidal_rule.py similarity index 100% rename from thealgorithms/maths/trapezoidal_rule.py rename to maths/trapezoidal_rule.py diff --git a/thealgorithms/maths/__init__.py b/matrix/__init__.py similarity index 100% rename from thealgorithms/maths/__init__.py rename to matrix/__init__.py diff --git a/thealgorithms/matrix/matrix_multiplication_addition.py b/matrix/matrix_multiplication_addition.py similarity index 100% rename from thealgorithms/matrix/matrix_multiplication_addition.py rename to matrix/matrix_multiplication_addition.py diff --git a/thealgorithms/matrix/__init__.py b/networking_flow/__init__.py similarity index 100% rename from thealgorithms/matrix/__init__.py rename to networking_flow/__init__.py diff --git a/thealgorithms/networking_flow/ford_fulkerson.py b/networking_flow/ford_fulkerson.py similarity index 100% rename from thealgorithms/networking_flow/ford_fulkerson.py rename to networking_flow/ford_fulkerson.py diff --git a/thealgorithms/networking_flow/minimum_cut.py b/networking_flow/minimum_cut.py similarity index 100% rename from thealgorithms/networking_flow/minimum_cut.py rename to networking_flow/minimum_cut.py diff --git a/thealgorithms/networking_flow/__init__.py b/neural_network/__init__.py similarity index 100% rename from thealgorithms/networking_flow/__init__.py rename to neural_network/__init__.py diff --git a/thealgorithms/neural_network/bpnn.py b/neural_network/bpnn.py similarity index 100% rename from thealgorithms/neural_network/bpnn.py rename to neural_network/bpnn.py diff --git a/thealgorithms/neural_network/convolution_neural_network.py b/neural_network/convolution_neural_network.py similarity index 100% rename from thealgorithms/neural_network/convolution_neural_network.py rename to neural_network/convolution_neural_network.py diff --git a/thealgorithms/neural_network/fcn.ipynb b/neural_network/fcn.ipynb similarity index 100% rename from thealgorithms/neural_network/fcn.ipynb rename to neural_network/fcn.ipynb diff --git a/thealgorithms/neural_network/perceptron.py b/neural_network/perceptron.py similarity index 100% rename from thealgorithms/neural_network/perceptron.py rename to neural_network/perceptron.py diff --git a/thealgorithms/neural_network/__init__.py b/other/__init__.py similarity index 100% rename from thealgorithms/neural_network/__init__.py rename to other/__init__.py diff --git a/thealgorithms/other/anagrams.py b/other/anagrams.py similarity index 100% rename from thealgorithms/other/anagrams.py rename to other/anagrams.py diff --git a/thealgorithms/other/binary_exponentiation.py b/other/binary_exponentiation.py similarity index 100% rename from thealgorithms/other/binary_exponentiation.py rename to other/binary_exponentiation.py diff --git a/thealgorithms/other/binary_exponentiation_2.py b/other/binary_exponentiation_2.py similarity index 100% rename from thealgorithms/other/binary_exponentiation_2.py rename to other/binary_exponentiation_2.py diff --git a/thealgorithms/other/detecting_english_programmatically.py b/other/detecting_english_programmatically.py similarity index 100% rename from thealgorithms/other/detecting_english_programmatically.py rename to other/detecting_english_programmatically.py diff --git a/thealgorithms/other/dictionary.txt b/other/dictionary.txt similarity index 100% rename from thealgorithms/other/dictionary.txt rename to other/dictionary.txt diff --git a/thealgorithms/other/euclidean_gcd.py b/other/euclidean_gcd.py similarity index 100% rename from thealgorithms/other/euclidean_gcd.py rename to other/euclidean_gcd.py diff --git a/thealgorithms/other/findingPrimes.py b/other/findingPrimes.py similarity index 100% rename from thealgorithms/other/findingPrimes.py rename to other/findingPrimes.py diff --git a/thealgorithms/other/fischer_yates_shuffle.py b/other/fischer_yates_shuffle.py similarity index 100% rename from thealgorithms/other/fischer_yates_shuffle.py rename to other/fischer_yates_shuffle.py diff --git a/thealgorithms/other/frequency_finder.py b/other/frequency_finder.py similarity index 100% rename from thealgorithms/other/frequency_finder.py rename to other/frequency_finder.py diff --git a/thealgorithms/other/__init__.py b/other/game_of_life/__init__.py similarity index 100% rename from thealgorithms/other/__init__.py rename to other/game_of_life/__init__.py diff --git a/thealgorithms/other/game_of_life/game_o_life.py b/other/game_of_life/game_o_life.py similarity index 100% rename from thealgorithms/other/game_of_life/game_o_life.py rename to other/game_of_life/game_o_life.py diff --git a/thealgorithms/other/game_of_life/sample.gif b/other/game_of_life/sample.gif similarity index 100% rename from thealgorithms/other/game_of_life/sample.gif rename to other/game_of_life/sample.gif diff --git a/thealgorithms/other/linear_congruential_generator.py b/other/linear_congruential_generator.py similarity index 100% rename from thealgorithms/other/linear_congruential_generator.py rename to other/linear_congruential_generator.py diff --git a/thealgorithms/other/nested_brackets.py b/other/nested_brackets.py similarity index 100% rename from thealgorithms/other/nested_brackets.py rename to other/nested_brackets.py diff --git a/thealgorithms/other/palindrome.py b/other/palindrome.py similarity index 100% rename from thealgorithms/other/palindrome.py rename to other/palindrome.py diff --git a/thealgorithms/other/password_generator.py b/other/password_generator.py similarity index 100% rename from thealgorithms/other/password_generator.py rename to other/password_generator.py diff --git a/thealgorithms/other/primelib.py b/other/primelib.py similarity index 100% rename from thealgorithms/other/primelib.py rename to other/primelib.py diff --git a/thealgorithms/other/sierpinski_triangle.py b/other/sierpinski_triangle.py similarity index 100% rename from thealgorithms/other/sierpinski_triangle.py rename to other/sierpinski_triangle.py diff --git a/thealgorithms/other/tower_of_hanoi.py b/other/tower_of_hanoi.py similarity index 100% rename from thealgorithms/other/tower_of_hanoi.py rename to other/tower_of_hanoi.py diff --git a/thealgorithms/other/two_sum.py b/other/two_sum.py similarity index 100% rename from thealgorithms/other/two_sum.py rename to other/two_sum.py diff --git a/thealgorithms/other/word_patterns.py b/other/word_patterns.py similarity index 100% rename from thealgorithms/other/word_patterns.py rename to other/word_patterns.py diff --git a/thealgorithms/other/words b/other/words similarity index 100% rename from thealgorithms/other/words rename to other/words diff --git a/thealgorithms/project_euler/README.md b/project_euler/README.md similarity index 100% rename from thealgorithms/project_euler/README.md rename to project_euler/README.md diff --git a/thealgorithms/other/game_of_life/__init__.py b/project_euler/problem_01/__init__.py similarity index 100% rename from thealgorithms/other/game_of_life/__init__.py rename to project_euler/problem_01/__init__.py diff --git a/thealgorithms/project_euler/problem_01/sol1.py b/project_euler/problem_01/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_01/sol1.py rename to project_euler/problem_01/sol1.py diff --git a/thealgorithms/project_euler/problem_01/sol2.py b/project_euler/problem_01/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_01/sol2.py rename to project_euler/problem_01/sol2.py diff --git a/thealgorithms/project_euler/problem_01/sol3.py b/project_euler/problem_01/sol3.py similarity index 100% rename from thealgorithms/project_euler/problem_01/sol3.py rename to project_euler/problem_01/sol3.py diff --git a/thealgorithms/project_euler/problem_01/sol4.py b/project_euler/problem_01/sol4.py similarity index 100% rename from thealgorithms/project_euler/problem_01/sol4.py rename to project_euler/problem_01/sol4.py diff --git a/thealgorithms/project_euler/problem_01/sol5.py b/project_euler/problem_01/sol5.py similarity index 100% rename from thealgorithms/project_euler/problem_01/sol5.py rename to project_euler/problem_01/sol5.py diff --git a/thealgorithms/project_euler/problem_01/__init__.py b/project_euler/problem_02/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_01/__init__.py rename to project_euler/problem_02/__init__.py diff --git a/thealgorithms/project_euler/problem_02/sol1.py b/project_euler/problem_02/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_02/sol1.py rename to project_euler/problem_02/sol1.py diff --git a/thealgorithms/project_euler/problem_02/sol2.py b/project_euler/problem_02/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_02/sol2.py rename to project_euler/problem_02/sol2.py diff --git a/thealgorithms/project_euler/problem_02/sol3.py b/project_euler/problem_02/sol3.py similarity index 100% rename from thealgorithms/project_euler/problem_02/sol3.py rename to project_euler/problem_02/sol3.py diff --git a/thealgorithms/project_euler/problem_02/__init__.py b/project_euler/problem_03/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_02/__init__.py rename to project_euler/problem_03/__init__.py diff --git a/thealgorithms/project_euler/problem_03/sol1.py b/project_euler/problem_03/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_03/sol1.py rename to project_euler/problem_03/sol1.py diff --git a/thealgorithms/project_euler/problem_03/sol2.py b/project_euler/problem_03/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_03/sol2.py rename to project_euler/problem_03/sol2.py diff --git a/thealgorithms/project_euler/problem_03/__init__.py b/project_euler/problem_04/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_03/__init__.py rename to project_euler/problem_04/__init__.py diff --git a/thealgorithms/project_euler/problem_04/sol1.py b/project_euler/problem_04/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_04/sol1.py rename to project_euler/problem_04/sol1.py diff --git a/thealgorithms/project_euler/problem_04/sol2.py b/project_euler/problem_04/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_04/sol2.py rename to project_euler/problem_04/sol2.py diff --git a/thealgorithms/project_euler/problem_04/__init__.py b/project_euler/problem_05/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_04/__init__.py rename to project_euler/problem_05/__init__.py diff --git a/thealgorithms/project_euler/problem_05/sol1.py b/project_euler/problem_05/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_05/sol1.py rename to project_euler/problem_05/sol1.py diff --git a/thealgorithms/project_euler/problem_05/sol2.py b/project_euler/problem_05/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_05/sol2.py rename to project_euler/problem_05/sol2.py diff --git a/thealgorithms/project_euler/problem_05/__init__.py b/project_euler/problem_06/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_05/__init__.py rename to project_euler/problem_06/__init__.py diff --git a/thealgorithms/project_euler/problem_06/sol1.py b/project_euler/problem_06/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_06/sol1.py rename to project_euler/problem_06/sol1.py diff --git a/thealgorithms/project_euler/problem_06/sol2.py b/project_euler/problem_06/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_06/sol2.py rename to project_euler/problem_06/sol2.py diff --git a/thealgorithms/project_euler/problem_06/sol3.py b/project_euler/problem_06/sol3.py similarity index 100% rename from thealgorithms/project_euler/problem_06/sol3.py rename to project_euler/problem_06/sol3.py diff --git a/thealgorithms/project_euler/problem_06/__init__.py b/project_euler/problem_07/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_06/__init__.py rename to project_euler/problem_07/__init__.py diff --git a/thealgorithms/project_euler/problem_07/sol1.py b/project_euler/problem_07/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_07/sol1.py rename to project_euler/problem_07/sol1.py diff --git a/thealgorithms/project_euler/problem_07/sol2.py b/project_euler/problem_07/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_07/sol2.py rename to project_euler/problem_07/sol2.py diff --git a/thealgorithms/project_euler/problem_07/sol3.py b/project_euler/problem_07/sol3.py similarity index 100% rename from thealgorithms/project_euler/problem_07/sol3.py rename to project_euler/problem_07/sol3.py diff --git a/thealgorithms/project_euler/problem_07/__init__.py b/project_euler/problem_08/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_07/__init__.py rename to project_euler/problem_08/__init__.py diff --git a/thealgorithms/project_euler/problem_08/sol1.py b/project_euler/problem_08/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_08/sol1.py rename to project_euler/problem_08/sol1.py diff --git a/thealgorithms/project_euler/problem_08/sol2.py b/project_euler/problem_08/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_08/sol2.py rename to project_euler/problem_08/sol2.py diff --git a/thealgorithms/project_euler/problem_08/__init__.py b/project_euler/problem_09/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_08/__init__.py rename to project_euler/problem_09/__init__.py diff --git a/thealgorithms/project_euler/problem_09/sol1.py b/project_euler/problem_09/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_09/sol1.py rename to project_euler/problem_09/sol1.py diff --git a/thealgorithms/project_euler/problem_09/sol2.py b/project_euler/problem_09/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_09/sol2.py rename to project_euler/problem_09/sol2.py diff --git a/thealgorithms/project_euler/problem_09/sol3.py b/project_euler/problem_09/sol3.py similarity index 100% rename from thealgorithms/project_euler/problem_09/sol3.py rename to project_euler/problem_09/sol3.py diff --git a/thealgorithms/project_euler/problem_09/__init__.py b/project_euler/problem_10/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_09/__init__.py rename to project_euler/problem_10/__init__.py diff --git a/thealgorithms/project_euler/problem_10/sol1.py b/project_euler/problem_10/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_10/sol1.py rename to project_euler/problem_10/sol1.py diff --git a/thealgorithms/project_euler/problem_10/sol2.py b/project_euler/problem_10/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_10/sol2.py rename to project_euler/problem_10/sol2.py diff --git a/thealgorithms/project_euler/problem_10/__init__.py b/project_euler/problem_11/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_10/__init__.py rename to project_euler/problem_11/__init__.py diff --git a/thealgorithms/project_euler/problem_11/grid.txt b/project_euler/problem_11/grid.txt similarity index 100% rename from thealgorithms/project_euler/problem_11/grid.txt rename to project_euler/problem_11/grid.txt diff --git a/thealgorithms/project_euler/problem_11/sol1.py b/project_euler/problem_11/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_11/sol1.py rename to project_euler/problem_11/sol1.py diff --git a/thealgorithms/project_euler/problem_11/sol2.py b/project_euler/problem_11/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_11/sol2.py rename to project_euler/problem_11/sol2.py diff --git a/thealgorithms/project_euler/problem_11/__init__.py b/project_euler/problem_12/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_11/__init__.py rename to project_euler/problem_12/__init__.py diff --git a/thealgorithms/project_euler/problem_12/sol1.py b/project_euler/problem_12/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_12/sol1.py rename to project_euler/problem_12/sol1.py diff --git a/thealgorithms/project_euler/problem_12/sol2.py b/project_euler/problem_12/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_12/sol2.py rename to project_euler/problem_12/sol2.py diff --git a/thealgorithms/project_euler/problem_12/__init__.py b/project_euler/problem_13/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_12/__init__.py rename to project_euler/problem_13/__init__.py diff --git a/thealgorithms/project_euler/problem_13/sol1.py b/project_euler/problem_13/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_13/sol1.py rename to project_euler/problem_13/sol1.py diff --git a/thealgorithms/project_euler/problem_13/__init__.py b/project_euler/problem_14/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_13/__init__.py rename to project_euler/problem_14/__init__.py diff --git a/thealgorithms/project_euler/problem_14/sol1.py b/project_euler/problem_14/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_14/sol1.py rename to project_euler/problem_14/sol1.py diff --git a/thealgorithms/project_euler/problem_14/sol2.py b/project_euler/problem_14/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_14/sol2.py rename to project_euler/problem_14/sol2.py diff --git a/thealgorithms/project_euler/problem_14/__init__.py b/project_euler/problem_15/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_14/__init__.py rename to project_euler/problem_15/__init__.py diff --git a/thealgorithms/project_euler/problem_15/sol1.py b/project_euler/problem_15/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_15/sol1.py rename to project_euler/problem_15/sol1.py diff --git a/thealgorithms/project_euler/problem_15/__init__.py b/project_euler/problem_16/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_15/__init__.py rename to project_euler/problem_16/__init__.py diff --git a/thealgorithms/project_euler/problem_16/sol1.py b/project_euler/problem_16/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_16/sol1.py rename to project_euler/problem_16/sol1.py diff --git a/thealgorithms/project_euler/problem_16/__init__.py b/project_euler/problem_17/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_16/__init__.py rename to project_euler/problem_17/__init__.py diff --git a/thealgorithms/project_euler/problem_17/sol1.py b/project_euler/problem_17/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_17/sol1.py rename to project_euler/problem_17/sol1.py diff --git a/thealgorithms/project_euler/problem_17/__init__.py b/project_euler/problem_19/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_17/__init__.py rename to project_euler/problem_19/__init__.py diff --git a/thealgorithms/project_euler/problem_19/sol1.py b/project_euler/problem_19/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_19/sol1.py rename to project_euler/problem_19/sol1.py diff --git a/thealgorithms/project_euler/problem_19/__init__.py b/project_euler/problem_20/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_19/__init__.py rename to project_euler/problem_20/__init__.py diff --git a/thealgorithms/project_euler/problem_20/sol1.py b/project_euler/problem_20/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_20/sol1.py rename to project_euler/problem_20/sol1.py diff --git a/thealgorithms/project_euler/problem_20/sol2.py b/project_euler/problem_20/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_20/sol2.py rename to project_euler/problem_20/sol2.py diff --git a/thealgorithms/project_euler/problem_20/__init__.py b/project_euler/problem_21/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_20/__init__.py rename to project_euler/problem_21/__init__.py diff --git a/thealgorithms/project_euler/problem_21/sol1.py b/project_euler/problem_21/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_21/sol1.py rename to project_euler/problem_21/sol1.py diff --git a/thealgorithms/project_euler/problem_21/__init__.py b/project_euler/problem_22/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_21/__init__.py rename to project_euler/problem_22/__init__.py diff --git a/thealgorithms/project_euler/problem_22/p022_names.txt b/project_euler/problem_22/p022_names.txt similarity index 100% rename from thealgorithms/project_euler/problem_22/p022_names.txt rename to project_euler/problem_22/p022_names.txt diff --git a/thealgorithms/project_euler/problem_22/sol1.py b/project_euler/problem_22/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_22/sol1.py rename to project_euler/problem_22/sol1.py diff --git a/thealgorithms/project_euler/problem_22/sol2.py b/project_euler/problem_22/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_22/sol2.py rename to project_euler/problem_22/sol2.py diff --git a/thealgorithms/project_euler/problem_22/__init__.py b/project_euler/problem_24/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_22/__init__.py rename to project_euler/problem_24/__init__.py diff --git a/thealgorithms/project_euler/problem_24/sol1.py b/project_euler/problem_24/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_24/sol1.py rename to project_euler/problem_24/sol1.py diff --git a/thealgorithms/project_euler/problem_24/__init__.py b/project_euler/problem_25/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_24/__init__.py rename to project_euler/problem_25/__init__.py diff --git a/thealgorithms/project_euler/problem_25/sol1.py b/project_euler/problem_25/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_25/sol1.py rename to project_euler/problem_25/sol1.py diff --git a/thealgorithms/project_euler/problem_25/sol2.py b/project_euler/problem_25/sol2.py similarity index 100% rename from thealgorithms/project_euler/problem_25/sol2.py rename to project_euler/problem_25/sol2.py diff --git a/thealgorithms/project_euler/problem_25/__init__.py b/project_euler/problem_28/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_25/__init__.py rename to project_euler/problem_28/__init__.py diff --git a/thealgorithms/project_euler/problem_28/sol1.py b/project_euler/problem_28/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_28/sol1.py rename to project_euler/problem_28/sol1.py diff --git a/thealgorithms/project_euler/problem_28/__init__.py b/project_euler/problem_29/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_28/__init__.py rename to project_euler/problem_29/__init__.py diff --git a/thealgorithms/project_euler/problem_29/solution.py b/project_euler/problem_29/solution.py similarity index 100% rename from thealgorithms/project_euler/problem_29/solution.py rename to project_euler/problem_29/solution.py diff --git a/thealgorithms/project_euler/problem_29/__init__.py b/project_euler/problem_31/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_29/__init__.py rename to project_euler/problem_31/__init__.py diff --git a/thealgorithms/project_euler/problem_31/sol1.py b/project_euler/problem_31/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_31/sol1.py rename to project_euler/problem_31/sol1.py diff --git a/thealgorithms/project_euler/problem_31/__init__.py b/project_euler/problem_36/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_31/__init__.py rename to project_euler/problem_36/__init__.py diff --git a/thealgorithms/project_euler/problem_36/sol1.py b/project_euler/problem_36/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_36/sol1.py rename to project_euler/problem_36/sol1.py diff --git a/thealgorithms/project_euler/problem_36/__init__.py b/project_euler/problem_40/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_36/__init__.py rename to project_euler/problem_40/__init__.py diff --git a/thealgorithms/project_euler/problem_40/sol1.py b/project_euler/problem_40/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_40/sol1.py rename to project_euler/problem_40/sol1.py diff --git a/thealgorithms/project_euler/problem_40/__init__.py b/project_euler/problem_48/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_40/__init__.py rename to project_euler/problem_48/__init__.py diff --git a/thealgorithms/project_euler/problem_48/sol1.py b/project_euler/problem_48/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_48/sol1.py rename to project_euler/problem_48/sol1.py diff --git a/thealgorithms/project_euler/problem_48/__init__.py b/project_euler/problem_52/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_48/__init__.py rename to project_euler/problem_52/__init__.py diff --git a/thealgorithms/project_euler/problem_52/sol1.py b/project_euler/problem_52/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_52/sol1.py rename to project_euler/problem_52/sol1.py diff --git a/thealgorithms/project_euler/problem_52/__init__.py b/project_euler/problem_53/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_52/__init__.py rename to project_euler/problem_53/__init__.py diff --git a/thealgorithms/project_euler/problem_53/sol1.py b/project_euler/problem_53/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_53/sol1.py rename to project_euler/problem_53/sol1.py diff --git a/thealgorithms/project_euler/problem_53/__init__.py b/project_euler/problem_76/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_53/__init__.py rename to project_euler/problem_76/__init__.py diff --git a/thealgorithms/project_euler/problem_76/sol1.py b/project_euler/problem_76/sol1.py similarity index 100% rename from thealgorithms/project_euler/problem_76/sol1.py rename to project_euler/problem_76/sol1.py diff --git a/thealgorithms/project_euler/problem_76/__init__.py b/searches/__init__.py similarity index 100% rename from thealgorithms/project_euler/problem_76/__init__.py rename to searches/__init__.py diff --git a/thealgorithms/searches/binary_search.py b/searches/binary_search.py similarity index 100% rename from thealgorithms/searches/binary_search.py rename to searches/binary_search.py diff --git a/thealgorithms/searches/interpolation_search.py b/searches/interpolation_search.py similarity index 100% rename from thealgorithms/searches/interpolation_search.py rename to searches/interpolation_search.py diff --git a/thealgorithms/searches/jump_search.py b/searches/jump_search.py similarity index 100% rename from thealgorithms/searches/jump_search.py rename to searches/jump_search.py diff --git a/thealgorithms/searches/linear_search.py b/searches/linear_search.py similarity index 100% rename from thealgorithms/searches/linear_search.py rename to searches/linear_search.py diff --git a/thealgorithms/searches/quick_select.py b/searches/quick_select.py similarity index 100% rename from thealgorithms/searches/quick_select.py rename to searches/quick_select.py diff --git a/thealgorithms/searches/sentinel_linear_search.py b/searches/sentinel_linear_search.py similarity index 100% rename from thealgorithms/searches/sentinel_linear_search.py rename to searches/sentinel_linear_search.py diff --git a/thealgorithms/searches/tabu_search.py b/searches/tabu_search.py similarity index 100% rename from thealgorithms/searches/tabu_search.py rename to searches/tabu_search.py diff --git a/thealgorithms/searches/tabu_test_data.txt b/searches/tabu_test_data.txt similarity index 100% rename from thealgorithms/searches/tabu_test_data.txt rename to searches/tabu_test_data.txt diff --git a/thealgorithms/searches/ternary_search.py b/searches/ternary_search.py similarity index 100% rename from thealgorithms/searches/ternary_search.py rename to searches/ternary_search.py diff --git a/thealgorithms/searches/test_tabu_search.py b/searches/test_tabu_search.py similarity index 100% rename from thealgorithms/searches/test_tabu_search.py rename to searches/test_tabu_search.py diff --git a/thealgorithms/simple_client/README.md b/simple_client/README.md similarity index 100% rename from thealgorithms/simple_client/README.md rename to simple_client/README.md diff --git a/thealgorithms/searches/__init__.py b/simple_client/__init__.py similarity index 100% rename from thealgorithms/searches/__init__.py rename to simple_client/__init__.py diff --git a/thealgorithms/simple_client/client.py b/simple_client/client.py similarity index 100% rename from thealgorithms/simple_client/client.py rename to simple_client/client.py diff --git a/thealgorithms/simple_client/server.py b/simple_client/server.py similarity index 100% rename from thealgorithms/simple_client/server.py rename to simple_client/server.py diff --git a/thealgorithms/sorts/BitonicSort.py b/sorts/BitonicSort.py similarity index 100% rename from thealgorithms/sorts/BitonicSort.py rename to sorts/BitonicSort.py diff --git a/thealgorithms/simple_client/__init__.py b/sorts/__init__.py similarity index 100% rename from thealgorithms/simple_client/__init__.py rename to sorts/__init__.py diff --git a/thealgorithms/sorts/bogosort.py b/sorts/bogosort.py similarity index 100% rename from thealgorithms/sorts/bogosort.py rename to sorts/bogosort.py diff --git a/thealgorithms/sorts/bubble_sort.py b/sorts/bubble_sort.py similarity index 100% rename from thealgorithms/sorts/bubble_sort.py rename to sorts/bubble_sort.py diff --git a/thealgorithms/sorts/bucket_sort.py b/sorts/bucket_sort.py similarity index 100% rename from thealgorithms/sorts/bucket_sort.py rename to sorts/bucket_sort.py diff --git a/thealgorithms/sorts/cocktail_shaker_sort.py b/sorts/cocktail_shaker_sort.py similarity index 100% rename from thealgorithms/sorts/cocktail_shaker_sort.py rename to sorts/cocktail_shaker_sort.py diff --git a/thealgorithms/sorts/comb_sort.py b/sorts/comb_sort.py similarity index 100% rename from thealgorithms/sorts/comb_sort.py rename to sorts/comb_sort.py diff --git a/thealgorithms/sorts/counting_sort.py b/sorts/counting_sort.py similarity index 100% rename from thealgorithms/sorts/counting_sort.py rename to sorts/counting_sort.py diff --git a/thealgorithms/sorts/cyclesort.py b/sorts/cyclesort.py similarity index 100% rename from thealgorithms/sorts/cyclesort.py rename to sorts/cyclesort.py diff --git a/thealgorithms/sorts/external-sort.py b/sorts/external-sort.py similarity index 100% rename from thealgorithms/sorts/external-sort.py rename to sorts/external-sort.py diff --git a/thealgorithms/sorts/gnome_sort.py b/sorts/gnome_sort.py similarity index 100% rename from thealgorithms/sorts/gnome_sort.py rename to sorts/gnome_sort.py diff --git a/thealgorithms/sorts/heap_sort.py b/sorts/heap_sort.py similarity index 100% rename from thealgorithms/sorts/heap_sort.py rename to sorts/heap_sort.py diff --git a/thealgorithms/sorts/insertion_sort.py b/sorts/insertion_sort.py similarity index 100% rename from thealgorithms/sorts/insertion_sort.py rename to sorts/insertion_sort.py diff --git a/thealgorithms/sorts/merge_sort.py b/sorts/merge_sort.py similarity index 100% rename from thealgorithms/sorts/merge_sort.py rename to sorts/merge_sort.py diff --git a/thealgorithms/sorts/merge_sort_fastest.py b/sorts/merge_sort_fastest.py similarity index 100% rename from thealgorithms/sorts/merge_sort_fastest.py rename to sorts/merge_sort_fastest.py diff --git a/thealgorithms/sorts/normal_distribution_quick_sort.md b/sorts/normal_distribution_quick_sort.md similarity index 100% rename from thealgorithms/sorts/normal_distribution_quick_sort.md rename to sorts/normal_distribution_quick_sort.md diff --git a/thealgorithms/sorts/pancake_sort.py b/sorts/pancake_sort.py similarity index 100% rename from thealgorithms/sorts/pancake_sort.py rename to sorts/pancake_sort.py diff --git a/thealgorithms/sorts/quick_sort.py b/sorts/quick_sort.py similarity index 100% rename from thealgorithms/sorts/quick_sort.py rename to sorts/quick_sort.py diff --git a/thealgorithms/sorts/quick_sort_3_partition.py b/sorts/quick_sort_3_partition.py similarity index 100% rename from thealgorithms/sorts/quick_sort_3_partition.py rename to sorts/quick_sort_3_partition.py diff --git a/thealgorithms/sorts/radix_sort.py b/sorts/radix_sort.py similarity index 100% rename from thealgorithms/sorts/radix_sort.py rename to sorts/radix_sort.py diff --git a/thealgorithms/sorts/random_normal_distribution_quicksort.py b/sorts/random_normal_distribution_quicksort.py similarity index 100% rename from thealgorithms/sorts/random_normal_distribution_quicksort.py rename to sorts/random_normal_distribution_quicksort.py diff --git a/thealgorithms/sorts/selection_sort.py b/sorts/selection_sort.py similarity index 100% rename from thealgorithms/sorts/selection_sort.py rename to sorts/selection_sort.py diff --git a/thealgorithms/sorts/shell_sort.py b/sorts/shell_sort.py similarity index 100% rename from thealgorithms/sorts/shell_sort.py rename to sorts/shell_sort.py diff --git a/thealgorithms/sorts/sorting_graphs.png b/sorts/sorting_graphs.png similarity index 100% rename from thealgorithms/sorts/sorting_graphs.png rename to sorts/sorting_graphs.png diff --git a/thealgorithms/sorts/timsort.py b/sorts/timsort.py similarity index 100% rename from thealgorithms/sorts/timsort.py rename to sorts/timsort.py diff --git a/thealgorithms/sorts/topological_sort.py b/sorts/topological_sort.py similarity index 100% rename from thealgorithms/sorts/topological_sort.py rename to sorts/topological_sort.py diff --git a/thealgorithms/sorts/tree_sort.py b/sorts/tree_sort.py similarity index 100% rename from thealgorithms/sorts/tree_sort.py rename to sorts/tree_sort.py diff --git a/thealgorithms/sorts/__init__.py b/strings/__init__.py similarity index 100% rename from thealgorithms/sorts/__init__.py rename to strings/__init__.py diff --git a/thealgorithms/strings/knuth_morris_pratt.py b/strings/knuth_morris_pratt.py similarity index 100% rename from thealgorithms/strings/knuth_morris_pratt.py rename to strings/knuth_morris_pratt.py diff --git a/thealgorithms/strings/levenshtein_distance.py b/strings/levenshtein_distance.py similarity index 100% rename from thealgorithms/strings/levenshtein_distance.py rename to strings/levenshtein_distance.py diff --git a/thealgorithms/strings/manacher.py b/strings/manacher.py similarity index 100% rename from thealgorithms/strings/manacher.py rename to strings/manacher.py diff --git a/thealgorithms/strings/min_cost_string_conversion.py b/strings/min_cost_string_conversion.py similarity index 100% rename from thealgorithms/strings/min_cost_string_conversion.py rename to strings/min_cost_string_conversion.py diff --git a/thealgorithms/strings/rabin_karp.py b/strings/rabin_karp.py similarity index 100% rename from thealgorithms/strings/rabin_karp.py rename to strings/rabin_karp.py diff --git a/tests/test_imports.py b/tests/test_imports.py index b83823905773..1d1a32af001e 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -3,9 +3,6 @@ import importlib import pytest -import thealgorithms - - def _split_path_rec(path): rest, tail = os.path.split(path) if rest == "": @@ -15,14 +12,21 @@ def _split_path_rec(path): def _gather_modules(): """Gather all modules that should be imported, but exclude __init__ - modules. + modules and anything in the tests directory. + + Note that all top-level directories, except those listed in + ``exclude_dirs``, will be searched. This means that, for example, + virtual environments in the project directory will be "teste". """ - testdir = os.path.dirname(__file__) + testdir = os.path.abspath(os.path.dirname(__file__)) root = os.path.dirname(testdir) - algos_root = os.path.dirname(thealgorithms.__file__) modules = [] + exclude_dirs = [os.path.abspath(p) for p in (testdir, root)] - for dirpath, dirnames, filenames in os.walk(algos_root): + for dirpath, dirnames, filenames in os.walk(root): + dirnames[:] = [d for d in dirnames if os.path.abspath(d) not in exclude_dirs] + if dirpath == root: # skip root to avoid scripts + continue for filename in filenames: if not filename.endswith(".py") or filename.endswith("__init__.py"): continue @@ -34,8 +38,11 @@ def _gather_modules(): @pytest.mark.parametrize("module", _gather_modules()) -@pytest.mark.timeout(1) +@pytest.mark.timeout(2) def test_import_module(module): """Test that all modules from project root can be imported""" mod = importlib.import_module(module) assert mod + +if __name__ == "__main__": + print(_gather_modules()) diff --git a/thealgorithms/traversals/__init__.py b/thealgorithms/traversals/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/thealgorithms/strings/__init__.py b/traversals/__init__.py similarity index 100% rename from thealgorithms/strings/__init__.py rename to traversals/__init__.py diff --git a/thealgorithms/traversals/binary_tree_traversals.py b/traversals/binary_tree_traversals.py similarity index 100% rename from thealgorithms/traversals/binary_tree_traversals.py rename to traversals/binary_tree_traversals.py From 6b97f3c60e7e2a6372a5c441cd549b60c8dcbf8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Lars=C3=A9n?= Date: Sat, 23 Feb 2019 14:46:23 +0100 Subject: [PATCH 7/8] Add scripts for running tests with coverage --- .travis/covstring.py | 31 +++++++++++++++++++++++++++++++ run_tests.sh | 8 ++++++++ 2 files changed, 39 insertions(+) create mode 100644 .travis/covstring.py create mode 100755 run_tests.sh diff --git a/.travis/covstring.py b/.travis/covstring.py new file mode 100644 index 000000000000..dbdeb2dbd8aa --- /dev/null +++ b/.travis/covstring.py @@ -0,0 +1,31 @@ +"""This utility script gathers the top level packages for wich coverage should +be measured. +""" +import os + +PROJECT_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + + +def gather_packages(cwd=PROJECT_ROOT): + """Return a list of all directories in cwd containing an ``__init__.py`` file.""" + dirpaths = (path for path in os.listdir(PROJECT_ROOT) if os.path.isdir(path)) + package_names = [ + os.path.basename(path) for path in dirpaths if "__init__.py" in os.listdir(path) + ] + return package_names + +def generate_coverage_py_string(cwd=PROJECT_ROOT): + """Generate a string on the form ``--cov PACKAGE_1 --cov PACKAGE_2 ...`` such + that all packages found in cwd are traced using pytest-cov. + """ + packages = gather_packages(cwd) + assert packages + + return "--cov " + " --cov ".join(packages) + +def main(): + cov_string = generate_coverage_py_string() + print(cov_string) + +if __name__ == "__main__": + main() diff --git a/run_tests.sh b/run_tests.sh new file mode 100755 index 000000000000..1323eb62958f --- /dev/null +++ b/run_tests.sh @@ -0,0 +1,8 @@ +#! /bin/bash +# +# Script for running the test suite with branch coverage. + +# Coverage.py caches interfere with subsequent runs for some reason +rm -f .coverage* + +python -m pytest tests/ $(python .travis/covstring.py) --cov-branch From 885f651b74119d15f27ec97e49673fb503089616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Lars=C3=A9n?= Date: Sat, 23 Feb 2019 14:46:42 +0100 Subject: [PATCH 8/8] Update .travis.yml --- .travis.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8f8ed62304e5..1ef884116166 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,11 +2,6 @@ language: python cache: pip python: - 3.6 -matrix: - allow_failures: - - python: nightly - - python: pypy - - python: pypy3 install: - pip install flake8 - pip install -e .[TEST] @@ -14,9 +9,10 @@ before_script: # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + # Prints an unmanageable amount of output (some 6000 lines) + #- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics script: - - pytest tests --cov thealgorithms --cov-branch + - ./run_tests.sh notifications: on_success: change on_failure: change