gitextract_gs1_le18/ ├── .gitconfig ├── .github/ │ ├── CODEOWNERS │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── build.yml │ ├── code_ql.yml │ ├── directory_workflow.yml │ ├── scripts/ │ │ └── build_directory/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ └── main.rs │ ├── stale.yml │ └── upload_coverage_report.yml ├── .gitignore ├── .gitpod.Dockerfile ├── .gitpod.yml ├── CONTRIBUTING.md ├── Cargo.toml ├── DIRECTORY.md ├── LICENSE ├── README.md ├── clippy.toml ├── git_hooks/ │ └── pre-commit └── src/ ├── backtracking/ │ ├── all_combination_of_size_k.rs │ ├── graph_coloring.rs │ ├── hamiltonian_cycle.rs │ ├── knight_tour.rs │ ├── mod.rs │ ├── n_queens.rs │ ├── parentheses_generator.rs │ ├── permutations.rs │ ├── rat_in_maze.rs │ ├── subset_sum.rs │ └── sudoku.rs ├── big_integer/ │ ├── fast_factorial.rs │ ├── mod.rs │ ├── multiply.rs │ └── poly1305.rs ├── bit_manipulation/ │ ├── binary_coded_decimal.rs │ ├── binary_count_trailing_zeros.rs │ ├── binary_shifts.rs │ ├── counting_bits.rs │ ├── find_missing_number.rs │ ├── find_previous_power_of_two.rs │ ├── find_unique_number.rs │ ├── hamming_distance.rs │ ├── highest_set_bit.rs │ ├── is_power_of_two.rs │ ├── mod.rs │ ├── n_bits_gray_code.rs │ ├── reverse_bits.rs │ ├── rightmost_set_bit.rs │ ├── sum_of_two_integers.rs │ ├── swap_odd_even_bits.rs │ └── twos_complement.rs ├── ciphers/ │ ├── README.md │ ├── aes.rs │ ├── affine_cipher.rs │ ├── another_rot13.rs │ ├── baconian_cipher.rs │ ├── base16.rs │ ├── base32.rs │ ├── base64.rs │ ├── base85.rs │ ├── blake2b.rs │ ├── caesar.rs │ ├── chacha.rs │ ├── diffie_hellman.rs │ ├── hashing_traits.rs │ ├── hill_cipher.rs │ ├── kernighan.rs │ ├── mod.rs │ ├── morse_code.rs │ ├── polybius.rs │ ├── rail_fence.rs │ ├── rot13.rs │ ├── rsa_cipher.rs │ ├── salsa.rs │ ├── sha256.rs │ ├── sha3.rs │ ├── tea.rs │ ├── theoretical_rot13.rs │ ├── transposition.rs │ ├── trifid.rs │ ├── vernam.rs │ ├── vigenere.rs │ └── xor.rs ├── compression/ │ ├── burrows_wheeler_transform.rs │ ├── huffman_encoding.rs │ ├── lz77.rs │ ├── mod.rs │ ├── move_to_front.rs │ └── run_length_encoding.rs ├── conversions/ │ ├── binary_to_decimal.rs │ ├── binary_to_hexadecimal.rs │ ├── binary_to_octal.rs │ ├── decimal_to_binary.rs │ ├── decimal_to_hexadecimal.rs │ ├── decimal_to_octal.rs │ ├── energy.rs │ ├── hexadecimal_to_binary.rs │ ├── hexadecimal_to_decimal.rs │ ├── hexadecimal_to_octal.rs │ ├── ipv4_conversion.rs │ ├── length_conversion.rs │ ├── mod.rs │ ├── octal_to_binary.rs │ ├── octal_to_decimal.rs │ ├── octal_to_hexadecimal.rs │ ├── order_of_magnitude_conversion.rs │ ├── pressure.rs │ ├── rectangular_to_polar.rs │ ├── rgb_cmyk_conversion.rs │ ├── rgb_hsv_conversion.rs │ ├── roman_numerals.rs │ ├── speed.rs │ ├── temperature.rs │ ├── time.rs │ ├── volume.rs │ └── weight.rs ├── data_structures/ │ ├── README.md │ ├── avl_tree.rs │ ├── b_tree.rs │ ├── binary_search_tree.rs │ ├── fenwick_tree.rs │ ├── floyds_algorithm.rs │ ├── graph.rs │ ├── hash_table.rs │ ├── heap.rs │ ├── lazy_segment_tree.rs │ ├── linked_list.rs │ ├── mod.rs │ ├── probabilistic/ │ │ ├── bloom_filter.rs │ │ ├── count_min_sketch.rs │ │ └── mod.rs │ ├── queue.rs │ ├── range_minimum_query.rs │ ├── rb_tree.rs │ ├── segment_tree.rs │ ├── segment_tree_recursive.rs │ ├── skip_list.rs │ ├── stack_using_singly_linked_list.rs │ ├── treap.rs │ ├── trie.rs │ ├── union_find.rs │ └── veb_tree.rs ├── dynamic_programming/ │ ├── catalan_numbers.rs │ ├── coin_change.rs │ ├── egg_dropping.rs │ ├── fibonacci.rs │ ├── fractional_knapsack.rs │ ├── integer_partition.rs │ ├── is_subsequence.rs │ ├── knapsack.rs │ ├── longest_common_subsequence.rs │ ├── longest_common_substring.rs │ ├── longest_continuous_increasing_subsequence.rs │ ├── longest_increasing_subsequence.rs │ ├── matrix_chain_multiply.rs │ ├── maximal_square.rs │ ├── maximum_subarray.rs │ ├── minimum_cost_path.rs │ ├── mod.rs │ ├── optimal_bst.rs │ ├── palindrome_partitioning.rs │ ├── rod_cutting.rs │ ├── smith_waterman.rs │ ├── snail.rs │ ├── subset_generation.rs │ ├── subset_sum.rs │ ├── task_assignment.rs │ ├── trapped_rainwater.rs │ └── word_break.rs ├── financial/ │ ├── depreciation.rs │ ├── equated_monthly_installments.rs │ ├── exponential_moving_average.rs │ ├── finance_ratios.rs │ ├── interest.rs │ ├── mod.rs │ ├── npv.rs │ ├── npv_sensitivity.rs │ ├── payback.rs │ ├── present_value.rs │ └── treynor_ratio.rs ├── general/ │ ├── convex_hull.rs │ ├── fisher_yates_shuffle.rs │ ├── genetic.rs │ ├── hanoi.rs │ ├── huffman_encoding.rs │ ├── kadane_algorithm.rs │ ├── kmeans.rs │ ├── mex.rs │ ├── mod.rs │ ├── permutations/ │ │ ├── heap.rs │ │ ├── mod.rs │ │ ├── naive.rs │ │ └── steinhaus_johnson_trotter.rs │ ├── subarray_sum_equals_k.rs │ └── two_sum.rs ├── geometry/ │ ├── closest_points.rs │ ├── graham_scan.rs │ ├── jarvis_scan.rs │ ├── mod.rs │ ├── point.rs │ ├── polygon_points.rs │ ├── ramer_douglas_peucker.rs │ └── segment.rs ├── graph/ │ ├── ant_colony_optimization.rs │ ├── astar.rs │ ├── bellman_ford.rs │ ├── bipartite_matching.rs │ ├── breadth_first_search.rs │ ├── centroid_decomposition.rs │ ├── decremental_connectivity.rs │ ├── depth_first_search.rs │ ├── depth_first_search_tic_tac_toe.rs │ ├── detect_cycle.rs │ ├── dijkstra.rs │ ├── dinic_maxflow.rs │ ├── disjoint_set_union.rs │ ├── eulerian_path.rs │ ├── floyd_warshall.rs │ ├── ford_fulkerson.rs │ ├── graph_enumeration.rs │ ├── heavy_light_decomposition.rs │ ├── kosaraju.rs │ ├── lee_breadth_first_search.rs │ ├── lowest_common_ancestor.rs │ ├── minimum_spanning_tree.rs │ ├── mod.rs │ ├── prim.rs │ ├── prufer_code.rs │ ├── strongly_connected_components.rs │ ├── tarjans_ssc.rs │ ├── topological_sort.rs │ └── two_satisfiability.rs ├── greedy/ │ ├── minimum_coin_change.rs │ ├── mod.rs │ ├── smallest_range.rs │ └── stable_matching.rs ├── lib.rs ├── machine_learning/ │ ├── cholesky.rs │ ├── decision_tree.rs │ ├── k_means.rs │ ├── k_nearest_neighbors.rs │ ├── linear_regression.rs │ ├── logistic_regression.rs │ ├── loss_function/ │ │ ├── average_margin_ranking_loss.rs │ │ ├── hinge_loss.rs │ │ ├── huber_loss.rs │ │ ├── kl_divergence_loss.rs │ │ ├── mean_absolute_error_loss.rs │ │ ├── mean_squared_error_loss.rs │ │ ├── mod.rs │ │ └── negative_log_likelihood.rs │ ├── mod.rs │ ├── naive_bayes.rs │ ├── optimization/ │ │ ├── adam.rs │ │ ├── gradient_descent.rs │ │ ├── mod.rs │ │ └── momentum.rs │ ├── perceptron.rs │ ├── principal_component_analysis.rs │ ├── random_forest.rs │ └── support_vector_classifier.rs ├── math/ │ ├── abs.rs │ ├── aliquot_sum.rs │ ├── amicable_numbers.rs │ ├── area_of_polygon.rs │ ├── area_under_curve.rs │ ├── armstrong_number.rs │ ├── average.rs │ ├── baby_step_giant_step.rs │ ├── bell_numbers.rs │ ├── binary_exponentiation.rs │ ├── binomial_coefficient.rs │ ├── catalan_numbers.rs │ ├── ceil.rs │ ├── chinese_remainder_theorem.rs │ ├── collatz_sequence.rs │ ├── combinations.rs │ ├── cross_entropy_loss.rs │ ├── decimal_to_fraction.rs │ ├── doomsday.rs │ ├── elliptic_curve.rs │ ├── euclidean_distance.rs │ ├── exponential_linear_unit.rs │ ├── extended_euclidean_algorithm.rs │ ├── factorial.rs │ ├── factors.rs │ ├── fast_fourier_transform.rs │ ├── fast_power.rs │ ├── faster_perfect_numbers.rs │ ├── field.rs │ ├── frizzy_number.rs │ ├── gaussian_elimination.rs │ ├── gaussian_error_linear_unit.rs │ ├── gcd_of_n_numbers.rs │ ├── geometric_series.rs │ ├── greatest_common_divisor.rs │ ├── huber_loss.rs │ ├── infix_to_postfix.rs │ ├── interest.rs │ ├── interpolation.rs │ ├── interquartile_range.rs │ ├── karatsuba_multiplication.rs │ ├── lcm_of_n_numbers.rs │ ├── leaky_relu.rs │ ├── least_square_approx.rs │ ├── linear_sieve.rs │ ├── logarithm.rs │ ├── lucas_series.rs │ ├── matrix_ops.rs │ ├── mersenne_primes.rs │ ├── miller_rabin.rs │ ├── mod.rs │ ├── modular_exponential.rs │ ├── newton_raphson.rs │ ├── nthprime.rs │ ├── pascal_triangle.rs │ ├── perfect_cube.rs │ ├── perfect_numbers.rs │ ├── perfect_square.rs │ ├── pollard_rho.rs │ ├── postfix_evaluation.rs │ ├── prime_check.rs │ ├── prime_factors.rs │ ├── prime_numbers.rs │ ├── quadratic_residue.rs │ ├── random.rs │ ├── relu.rs │ ├── sieve_of_eratosthenes.rs │ ├── sigmoid.rs │ ├── signum.rs │ ├── simpsons_integration.rs │ ├── softmax.rs │ ├── sprague_grundy_theorem.rs │ ├── square_pyramidal_numbers.rs │ ├── square_root.rs │ ├── sum_of_digits.rs │ ├── sum_of_geometric_progression.rs │ ├── sum_of_harmonic_series.rs │ ├── sylvester_sequence.rs │ ├── tanh.rs │ ├── trapezoidal_integration.rs │ ├── trial_division.rs │ ├── trig_functions.rs │ ├── vector_cross_product.rs │ └── zellers_congruence_algorithm.rs ├── navigation/ │ ├── bearing.rs │ ├── haversine.rs │ ├── mod.rs │ └── rhumbline.rs ├── number_theory/ │ ├── compute_totient.rs │ ├── euler_totient.rs │ ├── kth_factor.rs │ └── mod.rs ├── searching/ │ ├── README.md │ ├── binary_search.rs │ ├── binary_search_recursive.rs │ ├── exponential_search.rs │ ├── fibonacci_search.rs │ ├── interpolation_search.rs │ ├── jump_search.rs │ ├── kth_smallest.rs │ ├── kth_smallest_heap.rs │ ├── linear_search.rs │ ├── mod.rs │ ├── moore_voting.rs │ ├── quick_select.rs │ ├── saddleback_search.rs │ ├── ternary_search.rs │ ├── ternary_search_min_max.rs │ ├── ternary_search_min_max_recursive.rs │ └── ternary_search_recursive.rs ├── signal_analysis/ │ ├── mod.rs │ └── yin.rs ├── sorting/ │ ├── README.md │ ├── bead_sort.rs │ ├── binary_insertion_sort.rs │ ├── bingo_sort.rs │ ├── bitonic_sort.rs │ ├── bogo_sort.rs │ ├── bubble_sort.rs │ ├── bucket_sort.rs │ ├── cocktail_shaker_sort.rs │ ├── comb_sort.rs │ ├── counting_sort.rs │ ├── cycle_sort.rs │ ├── dutch_national_flag_sort.rs │ ├── exchange_sort.rs │ ├── gnome_sort.rs │ ├── heap_sort.rs │ ├── insertion_sort.rs │ ├── intro_sort.rs │ ├── merge_sort.rs │ ├── mod.rs │ ├── odd_even_sort.rs │ ├── pancake_sort.rs │ ├── patience_sort.rs │ ├── pigeonhole_sort.rs │ ├── quick_sort.rs │ ├── quick_sort_3_ways.rs │ ├── radix_sort.rs │ ├── selection_sort.rs │ ├── shell_sort.rs │ ├── sleep_sort.rs │ ├── sort_utils.rs │ ├── stooge_sort.rs │ ├── tim_sort.rs │ ├── tree_sort.rs │ ├── wave_sort.rs │ └── wiggle_sort.rs └── string/ ├── README.md ├── aho_corasick.rs ├── anagram.rs ├── autocomplete_using_trie.rs ├── boyer_moore_search.rs ├── burrows_wheeler_transform.rs ├── duval_algorithm.rs ├── hamming_distance.rs ├── isogram.rs ├── isomorphism.rs ├── jaro_winkler_distance.rs ├── knuth_morris_pratt.rs ├── levenshtein_distance.rs ├── lipogram.rs ├── manacher.rs ├── mod.rs ├── palindrome.rs ├── pangram.rs ├── rabin_karp.rs ├── reverse.rs ├── run_length_encoding.rs ├── shortest_palindrome.rs ├── suffix_array.rs ├── suffix_array_manber_myers.rs ├── suffix_tree.rs └── z_algorithm.rs