Der beste Weg, Programmieren und Python zu lernen, ist das Üben. Selbst wenn Sie ein Anfänger sind, werden Sie auf jeden Fall magische Effekte erzielen, solange Sie weiterhin Code eingeben und ausgeben.
Es gibt viele Python-Trainingsprojekte, insbesondere auf Github. Es wird sowohl Anfängern als auch erfahrenen Benutzern empfohlen, es auszuprobieren.
Hier empfehle ich Ihnen ein Übungsprojekt zu Gitthub, Algorithmus Warehouse-Algorithmen.
https://github.com/keon/algorithms
Dies enthält eine Sammlung von Python-Implementierungen vieler Kernalgorithmen, wie Sortierung, Graph Computing, Backtracking, Warteschlangen, Stream Computing, Heap, Suche, Komprimierung und mehr.
Dieses Warehouse unterstützt die Installation von Bibliotheken von Drittanbietern und ruft diese in Python auf, was sehr praktisch ist.
Verwenden Sie zuerst pip zur Installation:
pip3 install algorithms
Importieren Sie dann relevante Module zum Aufrufen, z. B. den Merge_sort-Merge-Sortieralgorithmus im Sortiermodul.
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)
Zeigen Sie einige häufige Algorithmusfälle.
def bucket_sort(arr): ''' Bucket Sort Complexity: O(n^2) The complexity is dominated by nextSort ''' # The number of buckets and make buckets num_buckets = len(arr) buckets = [[] for bucket in range(num_buckets)] # Assign values into bucket_sort for value in arr: index = value * num_buckets // (max(arr) + 1) buckets[index].append(value) # Sort sorted_list = [] for i in range(num_buckets): sorted_list.extend(next_sort(buckets[i])) return sorted_list def next_sort(arr): # We will use insertion sort here. for i in range(1, len(arr)): j = i - 1 key = arr[i] while arr[j] > key and j >= 0: arr[j+1] = arr[j] j = j - 1 arr[j + 1] = key return arr
import math def distance(x,y): """[summary] HELPER-FUNCTION calculates the (eulidean) distance between vector x and y. Arguments: x {[tuple]} -- [vector] y {[tuple]} -- [vector] """ assert len(x) == len(y), "The vector must have same length" result = () sum = 0 for i in range(len(x)): result += (x[i] -y[i],) for component in result: sum += component**2 return math.sqrt(sum) def nearest_neighbor(x, tSet): """[summary] Implements the nearest neighbor algorithm Arguments: x {[tupel]} -- [vector] tSet {[dict]} -- [training set] Returns: [type] -- [result of the AND-function] """ assert isinstance(x, tuple) and isinstance(tSet, dict) current_key = () min_d = float('inf') for key in tSet: d = distance(x, key) if d < min_d: min_d = d current_key = key return tSet[current_key]
# Implement the encode and decode methods. def encode(strs): """Encodes a list of strings to a single string. :type strs: List[str] :rtype: str """ res = '' for string in strs.split(): res += str(len(string)) + ":" + string return res def decode(s): """Decodes a single string to a list of strings. :type s: str :rtype: List[str] """ strs = [] i = 0 while i < len(s): index = s.find(":", i) size = int(s[i:index]) strs.append(s[index+1: index+1+size]) i = index+1+size return strs
def get_histogram(input_list: list) -> dict: """ Get histogram representation :param input_list: list with different and unordered values :return histogram: dict with histogram of input_list """ # Create dict to store histogram histogram = {} # For each list value, add one to the respective histogram dict position for i in input_list: histogram[i] = histogram.get(i, 0) + 1 return histogram
Das obige ist der detaillierte Inhalt vonAlgorithmen, das umfassendste Python-Algorithmus-Warehouse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!