gitextract_lj21xc5n/ ├── .devcontainer/ │ ├── Dockerfile │ ├── README.md │ ├── devcontainer.json │ └── post_install ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ ├── feature_request.yml │ │ └── other.yml │ ├── dependabot.yml │ ├── pull_request_template.md │ ├── stale.yml │ └── workflows/ │ ├── build.yml │ ├── devcontainer_ci.yml │ ├── directory_writer.yml │ ├── project_euler.yml │ ├── ruff.yml │ └── sphinx.yml ├── .gitignore ├── .gitpod.yml ├── .pre-commit-config.yaml ├── CONTRIBUTING.md ├── DIRECTORY.md ├── LICENSE.md ├── README.md ├── audio_filters/ │ ├── README.md │ ├── __init__.py │ ├── butterworth_filter.py │ ├── equal_loudness_filter.py.broken.txt │ ├── iir_filter.py │ ├── loudness_curve.json │ └── show_response.py ├── backtracking/ │ ├── README.md │ ├── __init__.py │ ├── all_combinations.py │ ├── all_permutations.py │ ├── all_subsequences.py │ ├── coloring.py │ ├── combination_sum.py │ ├── crossword_puzzle_solver.py │ ├── generate_parentheses.py │ ├── generate_parentheses_iterative.py │ ├── hamiltonian_cycle.py │ ├── knight_tour.py │ ├── match_word_pattern.py │ ├── minimax.py │ ├── n_queens.py │ ├── n_queens_math.py │ ├── power_sum.py │ ├── rat_in_maze.py │ ├── sudoku.py │ ├── sum_of_subsets.py │ ├── word_break.py │ ├── word_ladder.py │ └── word_search.py ├── bit_manipulation/ │ ├── README.md │ ├── __init__.py │ ├── binary_and_operator.py │ ├── binary_coded_decimal.py │ ├── binary_count_setbits.py │ ├── binary_count_trailing_zeros.py │ ├── binary_or_operator.py │ ├── binary_shifts.py │ ├── binary_twos_complement.py │ ├── binary_xor_operator.py │ ├── bitwise_addition_recursive.py │ ├── count_1s_brian_kernighan_method.py │ ├── count_number_of_one_bits.py │ ├── excess_3_code.py │ ├── find_previous_power_of_two.py │ ├── find_unique_number.py │ ├── gray_code_sequence.py │ ├── highest_set_bit.py │ ├── index_of_rightmost_set_bit.py │ ├── is_even.py │ ├── is_power_of_two.py │ ├── largest_pow_of_two_le_num.py │ ├── missing_number.py │ ├── numbers_different_signs.py │ ├── power_of_4.py │ ├── reverse_bits.py │ ├── single_bit_manipulation_operations.py │ └── swap_all_odd_and_even_bits.py ├── blockchain/ │ ├── README.md │ ├── __init__.py │ └── diophantine_equation.py ├── boolean_algebra/ │ ├── README.md │ ├── __init__.py │ ├── and_gate.py │ ├── imply_gate.py │ ├── karnaugh_map_simplification.py │ ├── multiplexer.py │ ├── nand_gate.py │ ├── nimply_gate.py │ ├── nor_gate.py │ ├── not_gate.py │ ├── or_gate.py │ ├── quine_mc_cluskey.py │ ├── xnor_gate.py │ └── xor_gate.py ├── cellular_automata/ │ ├── README.md │ ├── __init__.py │ ├── conways_game_of_life.py │ ├── game_of_life.py │ ├── langtons_ant.py │ ├── nagel_schrekenberg.py │ ├── one_dimensional.py │ └── wa_tor.py ├── ciphers/ │ ├── README.md │ ├── __init__.py │ ├── a1z26.py │ ├── affine_cipher.py │ ├── atbash.py │ ├── autokey.py │ ├── baconian_cipher.py │ ├── base16.py │ ├── base32.py │ ├── base64_cipher.py │ ├── base85.py │ ├── beaufort_cipher.py │ ├── bifid.py │ ├── brute_force_caesar_cipher.py │ ├── caesar_cipher.py │ ├── cryptomath_module.py │ ├── decrypt_caesar_with_chi_squared.py │ ├── deterministic_miller_rabin.py │ ├── diffie.py │ ├── diffie_hellman.py │ ├── elgamal_key_generator.py │ ├── enigma_machine2.py │ ├── fractionated_morse_cipher.py │ ├── gronsfeld_cipher.py │ ├── hill_cipher.py │ ├── mixed_keyword_cypher.py │ ├── mono_alphabetic_ciphers.py │ ├── morse_code.py │ ├── onepad_cipher.py │ ├── permutation_cipher.py │ ├── playfair_cipher.py │ ├── polybius.py │ ├── porta_cipher.py │ ├── prehistoric_men.txt │ ├── rabin_miller.py │ ├── rail_fence_cipher.py │ ├── rot13.py │ ├── rsa_cipher.py │ ├── rsa_factorization.py │ ├── rsa_key_generator.py │ ├── running_key_cipher.py │ ├── shuffled_shift_cipher.py │ ├── simple_keyword_cypher.py │ ├── simple_substitution_cipher.py │ ├── transposition_cipher.py │ ├── transposition_cipher_encrypt_decrypt_file.py │ ├── trifid_cipher.py │ ├── vernam_cipher.py │ ├── vigenere_cipher.py │ └── xor_cipher.py ├── computer_vision/ │ ├── README.md │ ├── __init__.py │ ├── cnn_classification.py │ ├── flip_augmentation.py │ ├── haralick_descriptors.py │ ├── harris_corner.py │ ├── horn_schunck.py │ ├── intensity_based_segmentation.py │ ├── mean_threshold.py │ ├── mosaic_augmentation.py │ └── pooling_functions.py ├── conversions/ │ ├── README.md │ ├── __init__.py │ ├── astronomical_length_scale_conversion.py │ ├── binary_to_decimal.py │ ├── binary_to_hexadecimal.py │ ├── binary_to_octal.py │ ├── convert_number_to_words.py │ ├── decimal_to_any.py │ ├── decimal_to_binary.py │ ├── decimal_to_hexadecimal.py │ ├── decimal_to_octal.py │ ├── energy_conversions.py │ ├── excel_title_to_column.py │ ├── hex_to_bin.py │ ├── hexadecimal_to_decimal.py │ ├── ipv4_conversion.py │ ├── length_conversion.py │ ├── molecular_chemistry.py │ ├── octal_to_binary.py │ ├── octal_to_decimal.py │ ├── octal_to_hexadecimal.py │ ├── prefix_conversions.py │ ├── prefix_conversions_string.py │ ├── pressure_conversions.py │ ├── rectangular_to_polar.py │ ├── rgb_cmyk_conversion.py │ ├── rgb_hsv_conversion.py │ ├── roman_numerals.py │ ├── speed_conversions.py │ ├── temperature_conversions.py │ ├── time_conversions.py │ ├── volume_conversions.py │ └── weight_conversion.py ├── data_compression/ │ ├── README.md │ ├── __init__.py │ ├── burrows_wheeler.py │ ├── coordinate_compression.py │ ├── huffman.py │ ├── lempel_ziv.py │ ├── lempel_ziv_decompress.py │ ├── lz77.py │ ├── peak_signal_to_noise_ratio.py │ └── run_length_encoding.py ├── data_structures/ │ ├── __init__.py │ ├── arrays/ │ │ ├── __init__.py │ │ ├── equilibrium_index_in_array.py │ │ ├── find_triplets_with_0_sum.py │ │ ├── index_2d_array_in_1d.py │ │ ├── kth_largest_element.py │ │ ├── median_two_array.py │ │ ├── monotonic_array.py │ │ ├── pairs_with_given_sum.py │ │ ├── permutations.py │ │ ├── prefix_sum.py │ │ ├── product_sum.py │ │ ├── rotate_array.py │ │ ├── sparse_table.py │ │ └── sudoku_solver.py │ ├── binary_tree/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── avl_tree.py │ │ ├── basic_binary_tree.py │ │ ├── binary_search_tree.py │ │ ├── binary_search_tree_recursive.py │ │ ├── binary_tree_mirror.py │ │ ├── binary_tree_node_sum.py │ │ ├── binary_tree_path_sum.py │ │ ├── binary_tree_traversals.py │ │ ├── diameter_of_binary_tree.py │ │ ├── diff_views_of_binary_tree.py │ │ ├── distribute_coins.py │ │ ├── fenwick_tree.py │ │ ├── flatten_binarytree_to_linkedlist.py │ │ ├── floor_and_ceiling.py │ │ ├── inorder_tree_traversal_2022.py │ │ ├── is_sorted.py │ │ ├── is_sum_tree.py │ │ ├── lazy_segment_tree.py │ │ ├── lowest_common_ancestor.py │ │ ├── maximum_fenwick_tree.py │ │ ├── maximum_sum_bst.py │ │ ├── merge_two_binary_trees.py │ │ ├── mirror_binary_tree.py │ │ ├── non_recursive_segment_tree.py │ │ ├── number_of_possible_binary_trees.py │ │ ├── red_black_tree.py │ │ ├── segment_tree.py │ │ ├── segment_tree_other.py │ │ ├── serialize_deserialize_binary_tree.py │ │ ├── symmetric_tree.py │ │ ├── treap.py │ │ └── wavelet_tree.py │ ├── disjoint_set/ │ │ ├── __init__.py │ │ ├── alternate_disjoint_set.py │ │ └── disjoint_set.py │ ├── hashing/ │ │ ├── __init__.py │ │ ├── bloom_filter.py │ │ ├── double_hash.py │ │ ├── hash_map.py │ │ ├── hash_table.py │ │ ├── hash_table_with_linked_list.py │ │ ├── number_theory/ │ │ │ ├── __init__.py │ │ │ └── prime_numbers.py │ │ ├── quadratic_probing.py │ │ └── tests/ │ │ ├── __init__.py │ │ └── test_hash_map.py │ ├── heap/ │ │ ├── __init__.py │ │ ├── binomial_heap.py │ │ ├── heap.py │ │ ├── heap_generic.py │ │ ├── max_heap.py │ │ ├── min_heap.py │ │ ├── randomized_heap.py │ │ └── skew_heap.py │ ├── kd_tree/ │ │ ├── __init__.py │ │ ├── build_kdtree.py │ │ ├── example/ │ │ │ ├── __init__.py │ │ │ ├── example_usage.py │ │ │ └── hypercube_points.py │ │ ├── kd_node.py │ │ ├── nearest_neighbour_search.py │ │ └── tests/ │ │ ├── __init__.py │ │ └── test_kdtree.py │ ├── linked_list/ │ │ ├── __init__.py │ │ ├── circular_linked_list.py │ │ ├── deque_doubly.py │ │ ├── doubly_linked_list.py │ │ ├── doubly_linked_list_two.py │ │ ├── floyds_cycle_detection.py │ │ ├── from_sequence.py │ │ ├── has_loop.py │ │ ├── is_palindrome.py │ │ ├── merge_two_lists.py │ │ ├── middle_element_of_linked_list.py │ │ ├── print_reverse.py │ │ ├── reverse_k_group.py │ │ ├── rotate_to_the_right.py │ │ ├── singly_linked_list.py │ │ ├── skip_list.py │ │ └── swap_nodes.py │ ├── queues/ │ │ ├── __init__.py │ │ ├── circular_queue.py │ │ ├── circular_queue_linked_list.py │ │ ├── double_ended_queue.py │ │ ├── linked_queue.py │ │ ├── priority_queue_using_list.py │ │ ├── queue_by_list.py │ │ ├── queue_by_two_stacks.py │ │ └── queue_on_pseudo_stack.py │ ├── stacks/ │ │ ├── __init__.py │ │ ├── balanced_parentheses.py │ │ ├── dijkstras_two_stack_algorithm.py │ │ ├── infix_to_postfix_conversion.py │ │ ├── infix_to_prefix_conversion.py │ │ ├── largest_rectangle_histogram.py │ │ ├── lexicographical_numbers.py │ │ ├── next_greater_element.py │ │ ├── postfix_evaluation.py │ │ ├── prefix_evaluation.py │ │ ├── stack.py │ │ ├── stack_using_two_queues.py │ │ ├── stack_with_doubly_linked_list.py │ │ ├── stack_with_singly_linked_list.py │ │ └── stock_span_problem.py │ ├── suffix_tree/ │ │ ├── __init__.py │ │ ├── example/ │ │ │ ├── __init__.py │ │ │ └── example_usage.py │ │ ├── suffix_tree.py │ │ ├── suffix_tree_node.py │ │ └── tests/ │ │ ├── __init__.py │ │ └── test_suffix_tree.py │ └── trie/ │ ├── __init__.py │ ├── radix_tree.py │ └── trie.py ├── digital_image_processing/ │ ├── __init__.py │ ├── change_brightness.py │ ├── change_contrast.py │ ├── convert_to_negative.py │ ├── dithering/ │ │ ├── __init__.py │ │ └── burkes.py │ ├── edge_detection/ │ │ ├── __init__.py │ │ └── canny.py │ ├── filters/ │ │ ├── __init__.py │ │ ├── bilateral_filter.py │ │ ├── convolve.py │ │ ├── gabor_filter.py │ │ ├── gaussian_filter.py │ │ ├── laplacian_filter.py │ │ ├── local_binary_pattern.py │ │ ├── median_filter.py │ │ └── sobel_filter.py │ ├── histogram_equalization/ │ │ ├── __init__.py │ │ ├── histogram_stretch.py │ │ ├── image_data/ │ │ │ └── __init__.py │ │ └── output_data/ │ │ └── __init__.py │ ├── image_data/ │ │ └── __init__.py │ ├── index_calculation.py │ ├── morphological_operations/ │ │ ├── __init__.py │ │ ├── dilation_operation.py │ │ └── erosion_operation.py │ ├── resize/ │ │ ├── __init__.py │ │ └── resize.py │ ├── rotation/ │ │ ├── __init__.py │ │ └── rotation.py │ ├── sepia.py │ └── test_digital_image_processing.py ├── divide_and_conquer/ │ ├── __init__.py │ ├── closest_pair_of_points.py │ ├── convex_hull.py │ ├── heaps_algorithm.py │ ├── heaps_algorithm_iterative.py │ ├── inversions.py │ ├── kth_order_statistic.py │ ├── max_difference_pair.py │ ├── max_subarray.py │ ├── mergesort.py │ ├── peak.py │ ├── power.py │ └── strassen_matrix_multiplication.py ├── docs/ │ ├── __init__.py │ ├── conf.py │ └── source/ │ └── __init__.py ├── dynamic_programming/ │ ├── __init__.py │ ├── abbreviation.py │ ├── all_construct.py │ ├── bitmask.py │ ├── catalan_numbers.py │ ├── climbing_stairs.py │ ├── combination_sum_iv.py │ ├── edit_distance.py │ ├── factorial.py │ ├── fast_fibonacci.py │ ├── fibonacci.py │ ├── fizz_buzz.py │ ├── floyd_warshall.py │ ├── integer_partition.py │ ├── iterating_through_submasks.py │ ├── k_means_clustering_tensorflow.py │ ├── knapsack.py │ ├── largest_divisible_subset.py │ ├── longest_common_subsequence.py │ ├── longest_common_substring.py │ ├── longest_increasing_subsequence.py │ ├── longest_increasing_subsequence_iterative.py │ ├── longest_increasing_subsequence_o_nlogn.py │ ├── longest_palindromic_subsequence.py │ ├── matrix_chain_multiplication.py │ ├── matrix_chain_order.py │ ├── max_non_adjacent_sum.py │ ├── max_product_subarray.py │ ├── max_subarray_sum.py │ ├── min_distance_up_bottom.py │ ├── minimum_coin_change.py │ ├── minimum_cost_path.py │ ├── minimum_partition.py │ ├── minimum_size_subarray_sum.py │ ├── minimum_squares_to_represent_a_number.py │ ├── minimum_steps_to_one.py │ ├── minimum_tickets_cost.py │ ├── narcissistic_number.py │ ├── optimal_binary_search_tree.py │ ├── palindrome_partitioning.py │ ├── range_sum_query.py │ ├── regex_match.py │ ├── rod_cutting.py │ ├── smith_waterman.py │ ├── subset_generation.py │ ├── sum_of_subset.py │ ├── trapped_water.py │ ├── tribonacci.py │ ├── viterbi.py │ ├── wildcard_matching.py │ └── word_break.py ├── electronics/ │ ├── __init__.py │ ├── apparent_power.py │ ├── builtin_voltage.py │ ├── capacitor_equivalence.py │ ├── carrier_concentration.py │ ├── charging_capacitor.py │ ├── charging_inductor.py │ ├── circular_convolution.py │ ├── coulombs_law.py │ ├── electric_conductivity.py │ ├── electric_power.py │ ├── electrical_impedance.py │ ├── ic_555_timer.py │ ├── ind_reactance.py │ ├── ohms_law.py │ ├── real_and_reactive_power.py │ ├── resistor_color_code.py │ ├── resistor_equivalence.py │ ├── resonant_frequency.py │ └── wheatstone_bridge.py ├── file_transfer/ │ ├── __init__.py │ ├── mytext.txt │ ├── receive_file.py │ ├── send_file.py │ └── tests/ │ ├── __init__.py │ └── test_send_file.py ├── financial/ │ ├── README.md │ ├── __init__.py │ ├── equated_monthly_installments.py │ ├── exponential_moving_average.py │ ├── interest.py │ ├── present_value.py │ ├── price_plus_tax.py │ ├── simple_moving_average.py │ ├── straight_line_depreciation.py │ └── time_and_half_pay.py ├── fractals/ │ ├── __init__.py │ ├── julia_sets.py │ ├── koch_snowflake.py │ ├── mandelbrot.py │ ├── sierpinski_triangle.py │ └── vicsek.py ├── fuzzy_logic/ │ ├── __init__.py │ ├── fuzzy_operations.py │ └── fuzzy_operations.py.DISABLED.txt ├── genetic_algorithm/ │ ├── __init__.py │ └── basic_string.py ├── geodesy/ │ ├── __init__.py │ ├── haversine_distance.py │ └── lamberts_ellipsoidal_distance.py ├── geometry/ │ ├── __init__.py │ ├── geometry.py │ ├── graham_scan.py │ ├── jarvis_march.py │ └── tests/ │ ├── __init__.py │ ├── test_graham_scan.py │ └── test_jarvis_march.py ├── graphics/ │ ├── __init__.py │ ├── bezier_curve.py │ ├── butterfly_pattern.py │ ├── digital_differential_analyzer_line.py │ └── vector3_for_2d_rendering.py ├── graphs/ │ ├── __init__.py │ ├── a_star.py │ ├── ant_colony_optimization_algorithms.py │ ├── articulation_points.py │ ├── basic_graphs.py │ ├── bellman_ford.py │ ├── bi_directional_dijkstra.py │ ├── bidirectional_a_star.py │ ├── bidirectional_breadth_first_search.py │ ├── bidirectional_search.py │ ├── boruvka.py │ ├── breadth_first_search.py │ ├── breadth_first_search_2.py │ ├── breadth_first_search_shortest_path.py │ ├── breadth_first_search_shortest_path_2.py │ ├── breadth_first_search_zero_one_shortest_path.py │ ├── check_bipatrite.py │ ├── check_cycle.py │ ├── connected_components.py │ ├── deep_clone_graph.py │ ├── depth_first_search.py │ ├── depth_first_search_2.py │ ├── dijkstra.py │ ├── dijkstra_2.py │ ├── dijkstra_algorithm.py │ ├── dijkstra_alternate.py │ ├── dijkstra_binary_grid.py │ ├── dinic.py │ ├── directed_and_undirected_weighted_graph.py │ ├── edmonds_karp_multiple_source_and_sink.py │ ├── eulerian_path_and_circuit_for_undirected_graph.py │ ├── even_tree.py │ ├── finding_bridges.py │ ├── frequent_pattern_graph_miner.py │ ├── g_topological_sort.py │ ├── gale_shapley_bigraph.py │ ├── graph_adjacency_list.py │ ├── graph_adjacency_matrix.py │ ├── graph_list.py │ ├── graphs_floyd_warshall.py │ ├── greedy_best_first.py │ ├── greedy_min_vertex_cover.py │ ├── kahns_algorithm_long.py │ ├── kahns_algorithm_topo.py │ ├── karger.py │ ├── lanczos_eigenvectors.py │ ├── markov_chain.py │ ├── matching_min_vertex_cover.py │ ├── minimum_path_sum.py │ ├── minimum_spanning_tree_boruvka.py │ ├── minimum_spanning_tree_kruskal.py │ ├── minimum_spanning_tree_kruskal2.py │ ├── minimum_spanning_tree_prims.py │ ├── minimum_spanning_tree_prims2.py │ ├── multi_heuristic_astar.py │ ├── page_rank.py │ ├── prim.py │ ├── random_graph_generator.py │ ├── scc_kosaraju.py │ ├── strongly_connected_components.py │ ├── tarjans_scc.py │ └── tests/ │ ├── __init__.py │ ├── test_min_spanning_tree_kruskal.py │ └── test_min_spanning_tree_prim.py ├── greedy_methods/ │ ├── __init__.py │ ├── best_time_to_buy_and_sell_stock.py │ ├── fractional_cover_problem.py │ ├── fractional_knapsack.py │ ├── fractional_knapsack_2.py │ ├── gas_station.py │ ├── minimum_coin_change.py │ ├── minimum_waiting_time.py │ ├── optimal_merge_pattern.py │ └── smallest_range.py ├── hashes/ │ ├── README.md │ ├── __init__.py │ ├── adler32.py │ ├── chaos_machine.py │ ├── djb2.py │ ├── elf.py │ ├── enigma_machine.py │ ├── fletcher16.py │ ├── hamming_code.py │ ├── luhn.py │ ├── md5.py │ ├── sdbm.py │ ├── sha1.py │ └── sha256.py ├── index.md ├── knapsack/ │ ├── README.md │ ├── __init__.py │ ├── greedy_knapsack.py │ ├── knapsack.py │ ├── recursive_approach_knapsack.py │ └── tests/ │ ├── __init__.py │ ├── test_greedy_knapsack.py │ └── test_knapsack.py ├── linear_algebra/ │ ├── README.md │ ├── __init__.py │ ├── gaussian_elimination.py │ ├── jacobi_iteration_method.py │ ├── lu_decomposition.py │ ├── matrix_inversion.py │ └── src/ │ ├── __init__.py │ ├── conjugate_gradient.py │ ├── gaussian_elimination_pivoting.py │ ├── lib.py │ ├── polynom_for_points.py │ ├── power_iteration.py │ ├── rank_of_matrix.py │ ├── rayleigh_quotient.py │ ├── schur_complement.py │ ├── test_linear_algebra.py │ └── transformations_2d.py ├── linear_programming/ │ ├── __init__.py │ └── simplex.py ├── machine_learning/ │ ├── __init__.py │ ├── apriori_algorithm.py │ ├── astar.py │ ├── automatic_differentiation.py │ ├── data_transformations.py │ ├── decision_tree.py │ ├── dimensionality_reduction.py │ ├── forecasting/ │ │ ├── __init__.py │ │ ├── ex_data.csv │ │ └── run.py │ ├── frequent_pattern_growth.py │ ├── gaussian_naive_bayes.py.broken.txt │ ├── gradient_boosting_classifier.py │ ├── gradient_boosting_regressor.py.broken.txt │ ├── gradient_descent.py │ ├── k_means_clust.py │ ├── k_nearest_neighbours.py │ ├── linear_discriminant_analysis.py │ ├── linear_regression.py │ ├── local_weighted_learning/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── local_weighted_learning.py │ ├── logistic_regression.py │ ├── loss_functions.py │ ├── lstm/ │ │ ├── __init__.py │ │ ├── lstm_prediction.py │ │ └── sample_data.csv │ ├── mfcc.py │ ├── multilayer_perceptron_classifier.py │ ├── polynomial_regression.py │ ├── principle_component_analysis.py │ ├── random_forest_classifier.py.broken.txt │ ├── random_forest_regressor.py.broken.txt │ ├── scoring_functions.py │ ├── self_organizing_map.py │ ├── sequential_minimum_optimization.py │ ├── similarity_search.py │ ├── support_vector_machines.py │ ├── t_stochastic_neighbour_embedding.py │ ├── word_frequency_functions.py │ ├── xgboost_classifier.py │ └── xgboost_regressor.py ├── maths/ │ ├── __init__.py │ ├── abs.py │ ├── addition_without_arithmetic.py │ ├── aliquot_sum.py │ ├── allocation_number.py │ ├── arc_length.py │ ├── area.py │ ├── area_under_curve.py │ ├── average_absolute_deviation.py │ ├── average_mean.py │ ├── average_median.py │ ├── average_mode.py │ ├── bailey_borwein_plouffe.py │ ├── base_neg2_conversion.py │ ├── basic_maths.py │ ├── binary_exponentiation.py │ ├── binary_multiplication.py │ ├── binomial_coefficient.py │ ├── binomial_distribution.py │ ├── ceil.py │ ├── chebyshev_distance.py │ ├── check_polygon.py │ ├── chinese_remainder_theorem.py │ ├── chudnovsky_algorithm.py │ ├── collatz_sequence.py │ ├── combinations.py │ ├── continued_fraction.py │ ├── decimal_isolate.py │ ├── decimal_to_fraction.py │ ├── dodecahedron.py │ ├── double_factorial.py │ ├── dual_number_automatic_differentiation.py │ ├── entropy.py │ ├── euclidean_distance.py │ ├── euler_method.py │ ├── euler_modified.py │ ├── eulers_totient.py │ ├── extended_euclidean_algorithm.py │ ├── factorial.py │ ├── factors.py │ ├── fast_inverse_sqrt.py │ ├── fermat_little_theorem.py │ ├── fibonacci.py │ ├── find_max.py │ ├── find_min.py │ ├── floor.py │ ├── gamma.py │ ├── gaussian.py │ ├── gcd_of_n_numbers.py │ ├── geometric_mean.py │ ├── germain_primes.py │ ├── greatest_common_divisor.py │ ├── hardy_ramanujanalgo.py │ ├── images/ │ │ └── __init__.py │ ├── integer_square_root.py │ ├── interquartile_range.py │ ├── is_int_palindrome.py │ ├── is_ip_v4_address_valid.py │ ├── is_square_free.py │ ├── jaccard_similarity.py │ ├── joint_probability_distribution.py │ ├── josephus_problem.py │ ├── juggler_sequence.py │ ├── karatsuba.py │ ├── kth_lexicographic_permutation.py │ ├── largest_of_very_large_numbers.py │ ├── least_common_multiple.py │ ├── line_length.py │ ├── liouville_lambda.py │ ├── lucas_lehmer_primality_test.py │ ├── lucas_series.py │ ├── maclaurin_series.py │ ├── manhattan_distance.py │ ├── matrix_exponentiation.py │ ├── max_sum_sliding_window.py │ ├── minkowski_distance.py │ ├── mobius_function.py │ ├── modular_division.py │ ├── modular_exponential.py │ ├── monte_carlo.py │ ├── monte_carlo_dice.py │ ├── number_of_digits.py │ ├── numerical_analysis/ │ │ ├── __init__.py │ │ ├── adams_bashforth.py │ │ ├── bisection.py │ │ ├── bisection_2.py │ │ ├── integration_by_simpson_approx.py │ │ ├── intersection.py │ │ ├── nevilles_method.py │ │ ├── newton_forward_interpolation.py │ │ ├── newton_raphson.py │ │ ├── numerical_integration.py │ │ ├── proper_fractions.py │ │ ├── runge_kutta.py │ │ ├── runge_kutta_fehlberg_45.py │ │ ├── runge_kutta_gills.py │ │ ├── secant_method.py │ │ ├── simpson_rule.py │ │ ├── square_root.py │ │ └── weierstrass_method.py │ ├── odd_sieve.py │ ├── perfect_cube.py │ ├── perfect_number.py │ ├── perfect_square.py │ ├── persistence.py │ ├── pi_generator.py │ ├── pi_monte_carlo_estimation.py │ ├── points_are_collinear_3d.py │ ├── pollard_rho.py │ ├── polynomial_evaluation.py │ ├── polynomials/ │ │ ├── __init__.py │ │ └── single_indeterminate_operations.py │ ├── power_using_recursion.py │ ├── prime_check.py │ ├── prime_factors.py │ ├── prime_numbers.py │ ├── prime_sieve_eratosthenes.py │ ├── primelib.py │ ├── print_multiplication_table.py │ ├── pythagoras.py │ ├── qr_decomposition.py │ ├── quadratic_equations_complex_numbers.py │ ├── radians.py │ ├── radix2_fft.py │ ├── remove_digit.py │ ├── segmented_sieve.py │ ├── series/ │ │ ├── __init__.py │ │ ├── arithmetic.py │ │ ├── geometric.py │ │ ├── geometric_series.py │ │ ├── harmonic.py │ │ ├── harmonic_series.py │ │ ├── hexagonal_numbers.py │ │ └── p_series.py │ ├── sieve_of_eratosthenes.py │ ├── sigmoid.py │ ├── signum.py │ ├── simultaneous_linear_equation_solver.py │ ├── sin.py │ ├── sock_merchant.py │ ├── softmax.py │ ├── solovay_strassen_primality_test.py │ ├── spearman_rank_correlation_coefficient.py │ ├── special_numbers/ │ │ ├── __init__.py │ │ ├── armstrong_numbers.py │ │ ├── automorphic_number.py │ │ ├── bell_numbers.py │ │ ├── carmichael_number.py │ │ ├── catalan_number.py │ │ ├── hamming_numbers.py │ │ ├── happy_number.py │ │ ├── harshad_numbers.py │ │ ├── hexagonal_number.py │ │ ├── krishnamurthy_number.py │ │ ├── perfect_number.py │ │ ├── polygonal_numbers.py │ │ ├── pronic_number.py │ │ ├── proth_number.py │ │ ├── triangular_numbers.py │ │ ├── ugly_numbers.py │ │ └── weird_number.py │ ├── sum_of_arithmetic_series.py │ ├── sum_of_digits.py │ ├── sum_of_geometric_progression.py │ ├── sum_of_harmonic_series.py │ ├── sumset.py │ ├── sylvester_sequence.py │ ├── tanh.py │ ├── test_factorial.py │ ├── test_prime_check.py │ ├── three_sum.py │ ├── trapezoidal_rule.py │ ├── triplet_sum.py │ ├── twin_prime.py │ ├── two_pointer.py │ ├── two_sum.py │ ├── volume.py │ └── zellers_congruence.py ├── matrix/ │ ├── __init__.py │ ├── binary_search_matrix.py │ ├── count_islands_in_matrix.py │ ├── count_negative_numbers_in_sorted_matrix.py │ ├── count_paths.py │ ├── cramers_rule_2x2.py │ ├── inverse_of_matrix.py │ ├── largest_square_area_in_matrix.py │ ├── matrix_based_game.py │ ├── matrix_class.py │ ├── matrix_equalization.py │ ├── matrix_multiplication_recursion.py │ ├── matrix_operation.py │ ├── max_area_of_island.py │ ├── median_matrix.py │ ├── nth_fibonacci_using_matrix_exponentiation.py │ ├── pascal_triangle.py │ ├── rotate_matrix.py │ ├── searching_in_sorted_matrix.py │ ├── sherman_morrison.py │ ├── spiral_print.py │ ├── tests/ │ │ ├── __init__.py │ │ ├── pytest.ini │ │ └── test_matrix_operation.py │ └── validate_sudoku_board.py ├── networking_flow/ │ ├── __init__.py │ ├── ford_fulkerson.py │ └── minimum_cut.py ├── neural_network/ │ ├── __init__.py │ ├── activation_functions/ │ │ ├── __init__.py │ │ ├── binary_step.py │ │ ├── exponential_linear_unit.py │ │ ├── gaussian_error_linear_unit.py │ │ ├── leaky_rectified_linear_unit.py │ │ ├── mish.py │ │ ├── rectified_linear_unit.py │ │ ├── scaled_exponential_linear_unit.py │ │ ├── soboleva_modified_hyperbolic_tangent.py │ │ ├── softplus.py │ │ ├── squareplus.py │ │ └── swish.py │ ├── back_propagation_neural_network.py │ ├── convolution_neural_network.py │ ├── gan.py_tf │ ├── input_data.py │ ├── perceptron.py.DISABLED │ ├── simple_neural_network.py │ └── two_hidden_layers_neural_network.py ├── other/ │ ├── __init__.py │ ├── activity_selection.py │ ├── alternative_list_arrange.py │ ├── bankers_algorithm.py │ ├── davis_putnam_logemann_loveland.py │ ├── doomsday.py │ ├── fischer_yates_shuffle.py │ ├── gauss_easter.py │ ├── graham_scan.py │ ├── greedy.py │ ├── guess_the_number_search.py │ ├── h_index.py │ ├── least_recently_used.py │ ├── lfu_cache.py │ ├── linear_congruential_generator.py │ ├── lru_cache.py │ ├── magicdiamondpattern.py │ ├── majority_vote_algorithm.py │ ├── maximum_subsequence.py │ ├── nested_brackets.py │ ├── number_container_system.py │ ├── password.py │ ├── quine.py │ ├── scoring_algorithm.py │ ├── sdes.py │ ├── sliding_window_maximum.py │ ├── tower_of_hanoi.py │ └── word_search.py ├── physics/ │ ├── __init__.py │ ├── altitude_pressure.py │ ├── archimedes_principle_of_buoyant_force.py │ ├── basic_orbital_capture.py │ ├── casimir_effect.py │ ├── center_of_mass.py │ ├── centripetal_force.py │ ├── coulombs_law.py │ ├── doppler_frequency.py │ ├── escape_velocity.py │ ├── grahams_law.py │ ├── horizontal_projectile_motion.py │ ├── hubble_parameter.py │ ├── ideal_gas_law.py │ ├── image_data/ │ │ └── __init__.py │ ├── in_static_equilibrium.py │ ├── kinetic_energy.py │ ├── lens_formulae.py │ ├── lorentz_transformation_four_vector.py │ ├── malus_law.py │ ├── mass_energy_equivalence.py │ ├── mirror_formulae.py │ ├── n_body_simulation.py │ ├── newtons_law_of_gravitation.py │ ├── newtons_second_law_of_motion.py │ ├── orbital_transfer_work.py │ ├── period_of_pendulum.py │ ├── photoelectric_effect.py │ ├── potential_energy.py │ ├── rainfall_intensity.py │ ├── reynolds_number.py │ ├── rms_speed_of_molecule.py │ ├── shear_stress.py │ ├── speed_of_sound.py │ ├── speeds_of_gas_molecules.py │ └── terminal_velocity.py ├── project_euler/ │ ├── README.md │ ├── __init__.py │ ├── problem_001/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ ├── sol3.py │ │ ├── sol4.py │ │ ├── sol5.py │ │ ├── sol6.py │ │ └── sol7.py │ ├── problem_002/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ ├── sol3.py │ │ ├── sol4.py │ │ └── sol5.py │ ├── problem_003/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ └── sol3.py │ ├── problem_004/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_005/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_006/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ ├── sol3.py │ │ └── sol4.py │ ├── problem_007/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ └── sol3.py │ ├── problem_008/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ └── sol3.py │ ├── problem_009/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ ├── sol3.py │ │ └── sol4.py │ ├── problem_010/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ └── sol3.py │ ├── problem_011/ │ │ ├── __init__.py │ │ ├── grid.txt │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_012/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_013/ │ │ ├── __init__.py │ │ ├── num.txt │ │ └── sol1.py │ ├── problem_014/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_015/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_016/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_017/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_018/ │ │ ├── __init__.py │ │ ├── solution.py │ │ └── triangle.txt │ ├── problem_019/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_020/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ ├── sol3.py │ │ └── sol4.py │ ├── problem_021/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_022/ │ │ ├── __init__.py │ │ ├── p022_names.txt │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_023/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_024/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_025/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ └── sol3.py │ ├── problem_026/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_027/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_028/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_029/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_030/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_031/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_032/ │ │ ├── __init__.py │ │ └── sol32.py │ ├── problem_033/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_034/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_035/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_036/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_037/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_038/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_039/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_040/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_041/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_042/ │ │ ├── __init__.py │ │ ├── solution42.py │ │ └── words.txt │ ├── problem_043/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_044/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_045/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_046/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_047/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_048/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_049/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_050/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_051/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_052/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_053/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_054/ │ │ ├── __init__.py │ │ ├── poker_hands.txt │ │ ├── sol1.py │ │ └── test_poker_hand.py │ ├── problem_055/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_056/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_057/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_058/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_059/ │ │ ├── __init__.py │ │ ├── p059_cipher.txt │ │ ├── sol1.py │ │ └── test_cipher.txt │ ├── problem_062/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_063/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_064/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_065/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_067/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ ├── sol2.py │ │ └── triangle.txt │ ├── problem_068/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_069/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_070/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_071/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_072/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_073/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_074/ │ │ ├── __init__.py │ │ ├── sol1.py │ │ └── sol2.py │ ├── problem_075/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_076/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_077/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_078/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_079/ │ │ ├── __init__.py │ │ ├── keylog.txt │ │ ├── keylog_test.txt │ │ └── sol1.py │ ├── problem_080/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_081/ │ │ ├── __init__.py │ │ ├── matrix.txt │ │ └── sol1.py │ ├── problem_082/ │ │ ├── __init__.py │ │ ├── input.txt │ │ ├── sol1.py │ │ └── test_matrix.txt │ ├── problem_085/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_086/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_087/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_089/ │ │ ├── __init__.py │ │ ├── numeralcleanup_test.txt │ │ ├── p089_roman.txt │ │ └── sol1.py │ ├── problem_091/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_092/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_094/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_095/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_097/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_099/ │ │ ├── __init__.py │ │ ├── base_exp.txt │ │ └── sol1.py │ ├── problem_100/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_101/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_102/ │ │ ├── __init__.py │ │ ├── p102_triangles.txt │ │ ├── sol1.py │ │ └── test_triangles.txt │ ├── problem_104/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_107/ │ │ ├── __init__.py │ │ ├── p107_network.txt │ │ ├── sol1.py │ │ └── test_network.txt │ ├── problem_109/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_112/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_113/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_114/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_115/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_116/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_117/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_119/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_120/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_121/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_122/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_123/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_125/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_129/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_131/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_135/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_136/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_144/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_145/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_164/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_173/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_174/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_180/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_187/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_188/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_190/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_191/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_203/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_205/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_206/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_207/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_234/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_301/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_345/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_493/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_551/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_587/ │ │ ├── __init__.py │ │ └── sol1.py │ ├── problem_686/ │ │ ├── __init__.py │ │ └── sol1.py │ └── problem_800/ │ ├── __init__.py │ └── sol1.py ├── pyproject.toml ├── quantum/ │ ├── README.md │ ├── __init__.py │ ├── bb84.py.DISABLED.txt │ ├── deutsch_jozsa.py.DISABLED.txt │ ├── half_adder.py.DISABLED.txt │ ├── not_gate.py.DISABLED.txt │ ├── q_fourier_transform.py │ ├── q_full_adder.py.DISABLED.txt │ ├── quantum_entanglement.py.DISABLED.txt │ ├── quantum_random.py.DISABLED.txt │ ├── quantum_teleportation.py.DISABLED.txt │ ├── ripple_adder_classic.py.DISABLED.txt │ ├── single_qubit_measure.py.DISABLED.txt │ └── superdense_coding.py.DISABLED.txt ├── scheduling/ │ ├── __init__.py │ ├── first_come_first_served.py │ ├── highest_response_ratio_next.py │ ├── job_sequence_with_deadline.py │ ├── job_sequencing_with_deadline.py │ ├── multi_level_feedback_queue.py │ ├── non_preemptive_shortest_job_first.py │ ├── round_robin.py │ └── shortest_job_first.py ├── scripts/ │ ├── README.md │ ├── __init__.py │ ├── build_directory_md.py │ ├── close_pull_requests_with_awaiting_changes.sh │ ├── close_pull_requests_with_failing_tests.sh │ ├── close_pull_requests_with_require_descriptive_names.sh │ ├── close_pull_requests_with_require_tests.sh │ ├── close_pull_requests_with_require_type_hints.sh │ ├── find_git_conflicts.sh │ ├── project_euler_answers.json │ ├── validate_filenames.py │ └── validate_solutions.py ├── searches/ │ ├── __init__.py │ ├── binary_search.py │ ├── binary_tree_traversal.py │ ├── double_linear_search.py │ ├── double_linear_search_recursion.py │ ├── exponential_search.py │ ├── fibonacci_search.py │ ├── hill_climbing.py │ ├── interpolation_search.py │ ├── jump_search.py │ ├── linear_search.py │ ├── median_of_medians.py │ ├── quick_select.py │ ├── sentinel_linear_search.py │ ├── simple_binary_search.py │ ├── simulated_annealing.py │ ├── tabu_search.py │ ├── tabu_test_data.txt │ └── ternary_search.py ├── sorts/ │ ├── README.md │ ├── __init__.py │ ├── bead_sort.py │ ├── binary_insertion_sort.py │ ├── bitonic_sort.py │ ├── bogo_sort.py │ ├── bubble_sort.py │ ├── bucket_sort.py │ ├── circle_sort.py │ ├── cocktail_shaker_sort.py │ ├── comb_sort.py │ ├── counting_sort.py │ ├── cycle_sort.py │ ├── cyclic_sort.py │ ├── double_sort.py │ ├── dutch_national_flag_sort.py │ ├── exchange_sort.py │ ├── external_sort.py │ ├── gnome_sort.py │ ├── heap_sort.py │ ├── insertion_sort.py │ ├── intro_sort.py │ ├── iterative_merge_sort.py │ ├── merge_insertion_sort.py │ ├── merge_sort.py │ ├── msd_radix_sort.py │ ├── natural_sort.py │ ├── normal_distribution_quick_sort.md │ ├── odd_even_sort.py │ ├── odd_even_transposition_parallel.py │ ├── odd_even_transposition_single_threaded.py │ ├── pancake_sort.py │ ├── patience_sort.py │ ├── pigeon_sort.py │ ├── pigeonhole_sort.py │ ├── quick_sort.py │ ├── quick_sort_3_partition.py │ ├── radix_sort.py │ ├── recursive_insertion_sort.py │ ├── recursive_mergesort_array.py │ ├── recursive_quick_sort.py │ ├── selection_sort.py │ ├── shell_sort.py │ ├── shrink_shell_sort.py │ ├── slowsort.py │ ├── stalin_sort.py │ ├── stooge_sort.py │ ├── strand_sort.py │ ├── tim_sort.py │ ├── topological_sort.py │ ├── tree_sort.py │ ├── unknown_sort.py │ └── wiggle_sort.py ├── strings/ │ ├── __init__.py │ ├── aho_corasick.py │ ├── alternative_string_arrange.py │ ├── anagrams.py │ ├── anagrams.txt │ ├── autocomplete_using_trie.py │ ├── barcode_validator.py │ ├── bitap_string_match.py │ ├── boyer_moore_search.py │ ├── camel_case_to_snake_case.py │ ├── can_string_be_rearranged_as_palindrome.py │ ├── capitalize.py │ ├── check_anagrams.py │ ├── count_vowels.py │ ├── credit_card_validator.py │ ├── damerau_levenshtein_distance.py │ ├── detecting_english_programmatically.py │ ├── dictionary.txt │ ├── dna.py │ ├── edit_distance.py │ ├── frequency_finder.py │ ├── hamming_distance.py │ ├── indian_phone_validator.py │ ├── is_contains_unique_chars.py │ ├── is_isogram.py │ ├── is_pangram.py │ ├── is_polish_national_id.py │ ├── is_spain_national_id.py │ ├── is_srilankan_phone_number.py │ ├── is_valid_email_address.py │ ├── jaro_winkler.py │ ├── join.py │ ├── knuth_morris_pratt.py │ ├── levenshtein_distance.py │ ├── lower.py │ ├── manacher.py │ ├── min_cost_string_conversion.py │ ├── naive_string_search.py │ ├── ngram.py │ ├── palindrome.py │ ├── pig_latin.py │ ├── prefix_function.py │ ├── rabin_karp.py │ ├── remove_duplicate.py │ ├── reverse_letters.py │ ├── reverse_words.py │ ├── snake_case_to_camel_pascal_case.py │ ├── split.py │ ├── string_switch_case.py │ ├── strip.py │ ├── text_justification.py │ ├── title.py │ ├── top_k_frequent_words.py │ ├── upper.py │ ├── wave_string.py │ ├── wildcard_pattern_matching.py │ ├── word_occurrence.py │ ├── word_patterns.py │ ├── words.txt │ └── z_function.py └── web_programming/ ├── __init__.py ├── co2_emission.py ├── covid_stats_via_xpath.py ├── crawl_google_results.py ├── crawl_google_scholar_citation.py ├── currency_converter.py ├── current_stock_price.py ├── current_weather.py ├── daily_horoscope.py ├── download_images_from_google_query.py ├── emails_from_url.py ├── fetch_anime_and_play.py ├── fetch_bbc_news.py ├── fetch_github_info.py ├── fetch_jobs.py ├── fetch_quotes.py ├── fetch_well_rx_price.py ├── get_amazon_product_data.py ├── get_imdb_top_250_movies_csv.py ├── get_imdbtop.py.DISABLED ├── get_ip_geolocation.py ├── get_top_billionaires.py ├── get_top_hn_posts.py ├── get_user_tweets.py.DISABLED ├── giphy.py ├── instagram_crawler.py ├── instagram_pic.py ├── instagram_video.py ├── nasa_data.py ├── open_google_results.py ├── random_anime_character.py ├── recaptcha_verification.py ├── reddit.py ├── search_books_by_isbn.py ├── slack_message.py ├── test_fetch_github_info.py └── world_covid19_stats.py