Algorithmen, das umfassendste Python-Algorithmus-Warehouse

WBOY
Freigeben: 2023-06-03 08:46:03
nach vorne
1480 Leute haben es durchsucht

​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.

Algorithmen, das umfassendste Python-Algorithmus-Warehouse

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.

Algorithmen, das umfassendste Python-Algorithmus-Warehouse

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

Zeigen Sie einige häufige Algorithmusfälle.

1. Sortieralgorithmus-Bucket-Sortierung

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
Nach dem Login kopieren

2. Maschinelles Lernen – Nächste-Nachbarn-Interpolationsmethode

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]
Nach dem Login kopieren

3. String-Dekodierungskodierung#🎜 🎜 #
# 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
Nach dem Login kopieren

4. Histogrammverteilung

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
Nach dem Login kopieren
Ich persönlich finde, dass die Algorithmen in diesem Lager sehr vollständig sind und zum Üben geeignet sind. ​

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!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!