Pythonische Datenstrukturen und Algorithmen
Minimale und saubere Beispielimplementierungen von Datenstrukturen und Algorithmen in Python 3.
Mitwirken
Vielen Dank für Ihr Interesse an einer Mitarbeit! Es gibt viele Möglichkeiten, zu diesem Projekt beizutragen. Beginnen Sie hier
Tests
Verwenden Sie Unittest
Um alle Tests durchzuführen, notieren Sie Folgendes:
$ python3 -m unittest discover tests
Um einige spezifische Tests auszuführen, können Sie dies wie folgt tun (Beispiel: Sortieren):
$ python3 -m unittest tests.test_sort
Verwenden Sie Pytest
Um alle Tests durchzuführen, notieren Sie Folgendes:
$ python3 -m pytest tests
Installieren
Wenn Sie die API-Algorithmen in Ihrem Code verwenden möchten, gehen Sie so einfach vor:
$ pip3 install algorithms
Sie können dies testen, indem Sie eine Python-Datei erstellen: (Beispiel: merge_sort
in sort
verwenden)
from algorithms . sort import merge_sort
if __name__ == "__main__" :
my_list = [ 1 , 8 , 3 , 5 , 6 ]
my_list = merge_sort ( my_list )
print ( my_list )
Deinstallieren
Wenn Sie Algorithmen deinstallieren möchten, gehen Sie so einfach vor:
$ pip3 uninstall -y algorithms
Liste der Implementierungen
- Arrays
- delete_nth
- abflachen
- Garage
- josephus_problem
- Limit
- longest_non_repeat
- max_ones_index
- merge_intervals
- fehlende_Bereiche
- plus_one
- Remove_Duplicates
- drehen
- summary_ranges
- drei_summe
- trimmean
- top_1
- zwei_summe
- move_zeros
- n_sum
- gierig
- max_contiguous_subsequence_sum
- Automaten
- zurückgehen
- general_solution.md
- add_operators
- Anagramm
- array_sum_combinations
- Kombinationssumme
- Faktorkombinationen
- generate_abbreviations
- generate_parenthesis
- Buchstabenkombination
- palindrome_partitioning
- Muster_Match
- permutieren
- permute_unique
- Teilmengen
- subsets_unique
- bfs
- maze_search
- kürzeste_Entfernung_von_allen_Gebäuden
- word_ladder
- bisschen
- add_bitwise_operator
- bit_operation
- bytes_int_conversion
- count_flips_to_convert
- count_ones
- find_difference
- find_missing_number
- flip_bit_longest_sequence
- power_of_two
- reverse_bits
- single_number
- single_number2
- single_number3
- Teilmengen
- swap_pair
- has_alternative_bit
- insert_bit
- entferne_bit
- binäre_Lücke
- Kompression
- huffman_coding
- rle_compression
- Elias
- dfs
- alle_Faktoren
- count_islands
- pacific_atlantic
- sudoku_solver
- wall_and_gates
- Verteilung
- dp
- buy_sell_stock
- klettern_treppen
- Coin_change
- Kombinationssumme
- egg_drop
- Hausräuber
- int_divide
- job_scheduling
- Tornister
- längste_zunehmende
- matrix_chain_order
- max_product_subarray
- max_subarray
- min_cost_path
- num_decodings
- regex_matching
- rod_cut
- word_break
- Fibonacci
- Hosoya-Dreieck
- K-Faktor_Strings
- pflanzen_bäume
- Graph
- check_bipartite
- stark_verbunden
- clone_graph
- Zykluserkennung
- find_all_cliques
- find_path
- Graph
- dijkstra
- markov_chain
- Minimum_spanning_tree
- Erfüllbarkeit
- Minimum_spanning_tree_prims
- Tarjan
- Durchquerung
- Maximum_flow_bfs
- Maximum_flow_dfs
- all_pairs_shortest_path
- bellman_ford
- Zählen Sie verbundene Komponenten
- Haufen
- merge_sorted_k_lists
- Skyline
- slide_window_max
- binärer_Heap
- k_closest_points
- Linkliste
- add_two_numbers
- copy_random_pointer
- delete_node
- erster_zyklischer_knoten
- ist_zyklisch
- is_palindrome
- kth_to_last
- Linkliste
- Remove_Duplicates
- umkehren
- rotate_list
- swap_in_pairs
- is_sorted
- Remove_range
- Karte
- Hashtabelle
- separate_chaining_hashtable
- längste_gemeinsame_Teilsequenz
- longest_palindromic_subsequence
- randomized_set
- valid_sudoku
- Wortmuster
- ist_isomorph
- is_anagram
- Mathematik
- base_conversion
- chinese_remainder_theorem
- Kombination
- cosine_similarity
- decimal_to_binary_ip
- diffie_hellman_key_exchange
- euler_totient
- erweiterter_gcd
- Fakultät
- find_order
- find_primitive_root
- gcd/lcm
- generieren_strobogrammtic
- Hagelkorn
- is_strobogrammatic
- krishnamurthy_number
- magische_Nummer
- modular_exponential
- modular_inverse
- next_bigger
- next_perfect_square
- nth_digit
- num_perfect_squares
- Polynom
- Leistung
- prime_check
- primes_sieve_of_eratosthenes
- Pythagoras
- rabin_miller
- rekursiver_binomialer_koeffizient
- RSA
- sqrt_precision_factor
- summing_digits
- symmetry_group_cycle_index
- Matrix
- sudoku_validator
- bomb_enemy
- copy_transform
- count_paths
- Matrix_Exponentiation
- Matrix_Inversion
- Matrix_Multiplikation
- rotieren_bild
- search_in_sorted_matrix
- sparse_dot_vector
- sparse_mul
- spiral_traversal
- crout_matrix_decomposition
- cholesky_matrix_decomposition
- sum_sub_squares
- sort_matrix_diagonally
- Warteschlangen
- max_sliding_window
- Moving_Average
- Warteschlange
- reconstruct_queue
- Zickzackgenerator
- suchen
- binäre_suche
- erstes_Vorkommen
- last_occurrence
- lineare_suche
- search_insert
- zwei_summe
- Suchbereich
- find_min_rotate
- search_rotate
- jump_search
- next_greatest_letter
- interpolation_search
- Satz
- randomized_set
- set_covering
- find_keyboard_row
- Sortieren
- bitonic_sort
- bogo_sort
- bubble_sort
- Bucket_sort
- cocktail_shaker_sort
- comb_sort
- counting_sort
- Cycle_sort
- Exchange_sort
- gnome_sort
- heap_sort
- insert_sort
- Besprechungsräume
- merge_sort
- pancake_sort
- pigeonhole_sort
- Quick_sort
- radix_sort
- Auswahlsortierung
- shell_sort
- sort_colors
- stooge_sort
- top_sort
- wiggle_sort
- Stapel
- längster_abs_pfad
- vereinfachen_Pfad
- Stapel
- gültige_Klammer
- stottern
- switch_pairs
- is_consecutive
- entferne_min
- is_sorted
- Streaming
- 1-sparse-recovery
- misra-gries
- Saiten
- fizzbuzz
- delete_reoccurring
- strip_url_params
- validate_coordinates
- domain_extractor
- merge_string_checker
- add_binary
- Wandlung zum Bösen
- decode_string
- encode_decode
- group_anagrams
- int_to_roman
- is_palindrome
- amtliches Kennzeichen
- make_sentence
- multiply_strings
- one_edit_distance
- rabin_karp
- reverse_string
- reverse_vowel
- reverse_words
- roman_to_int
- word_squares
- unique_morse
- Judge_Circle
- starkes_passwort
- caesar_cipher
- check_pangram
- enthält_string
- count_binary_substring
- Wiederholungszeichenfolge
- min_distanz
- längstes_gemeinsames_Präfix
- drehen
- first_unique_char
- wiederholen_substring
- longest_palindromic_substring
- knuth_morris_pratt
- Panagramm
- Baum
- bst
- array_to_bst
- bst_closest_value
- BSTIterator
- delete_node
- is_bst
- kth_smallest
- niedrigster_gemeinsamer_Vorfahre
- Vorgänger
- serialize_deserialize
- Nachfolger
- unique_bst
- Tiefensumme
- count_left_node
- num_empty
- Höhe
- fenwick_tree
- red_black_tree
- segment_tree
- segment_tree
- iterative_segment_tree
- Durchquerung
- in Ordnung
- level_order
- Nachbestellung
- vorbestellen
- Zickzack
- versuchen
- b_tree
- binäre_Baumpfade
- bin_tree_to_list
- construction_tree_preorder_postorder
- tiefste_links
- invert_tree
- is_balanced
- is_subtree
- is_symmetric
- längste_konsekutive
- niedrigster_gemeinsamer_Vorfahre
- max_height
- max_path_sum
- min_height
- path_sum
- path_sum2
- hübscher_Druck
- same_tree
- Baum
- Unix
- Weg
- join_with_slash
- full_path
- Teilt
- vereinfachen_Pfad
- Unionfind
Mitwirkende
Vielen Dank an alle Mitwirkenden, die beim Aufbau des Repos geholfen haben.