compétitifpython est une bibliothèque open source d'algorithmes et de structures de données implémentées en Python. Il propose une collection d'algorithmes et de structures de données fréquemment utilisés qui peuvent être directement utilisés dans n'importe quel projet basé sur Python.
Pour installer la bibliothèque Competitionpython, exécutez simplement la commande suivante :
pip install competitivepython
Pour utiliser le python compétitif dans votre projet, importez l'algorithme ou la structure de données souhaitée et utilisez-le selon vos besoins. Vous trouverez ci-dessous quelques exemples de cas d'utilisation :
Implémentation de recherches :
from competitivepython import searches
arr = [1, 2, 3, 4, 5]
target = 3
result = searches.binary_search(arr, target)
print("Binary Search:",result)
'''Output:
Binary Search: 2
'''
from competitivepython import searches
arr = [5, 7, 9, 2, 4, 10]
target = 4
result = searches.linear_search(arr, target)
print("Linear Search:",result)
'''Output:
Linear Search: 4
'''
from competitivepython import searches
txt = "ABABDABACDABABCABAB"
pat = "ABABCABAB"
result = searches.kmp_search(pat,txt)
print("KMP Search:",result)
'''Output:
KMP Search: [10]
'''
Implémentation du tri :
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.bubble_sort(arr)
print('bubble sort:', result)
''' Output ---
bubble sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.bucket_sort(arr)
print('bucket sort:', result)
''' Output ---
bucket sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.heap_sort(arr)
print('heap sort:', result)
''' Output ---
heap sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.insertion_sort(arr)
print('insertion sort:', result)
''' Output ---
insertion sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.merge_sort(arr)
print('merge sort:', result)
''' Output ---
merge sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.quick_sort(arr)
print('quick sort:', result)
''' Output ---
quick sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.radix_sort(arr)
print('radix sort:', result)
''' Output ---
radix sort: [6, 7, 12, # 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.selection_sort(arr)
print('selection sort:', result)
''' Output ---
selection sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.shell_sort(arr)
print('shell sort:', result)
''' Output ---
shell sort: [6, 7, 12, 15, 112]
'''
from competitivepython import sorting
arr = [112, 6, 7, 12, 15]
result = sorting.tim_sort(arr)
print('tim sort:', result)
''' Output ---
tim sort: [6, 7, 12, 15, 112]
'''
Implémentation de graphiques :
from competitivepython import graphs
graph = {
'A': {'B': 1, 'C': 4},
'B': {'A': 1, 'C': 2, 'D': 5},
'C': {'A': 4, 'B': 2, 'D': 1},
'D': {'B': 5, 'C': 1},
}
start = 'A'
end = 'D'
result = graphs.breadth_first_search(graph, 'C')
print("bfs:",result)
''' Output--
bfs: {'B', 'D', 'C', 'A'}
'''
from competitivepython import graphs
graph = {
'A': {'B': 1, 'C': 4},
'B': {'A': 1, 'C': 2, 'D': 5},
'C': {'A': 4, 'B': 2, 'D': 1},
'D': {'B': 5, 'C': 1},
}
start = 'A'
end = 'D'
result = graphs.depth_first_search(graph, 'C')
print("dfs:",result)
''' Output--
dfs: {'B', 'D', 'C', 'A'}
'''
from competitivepython import graphs
graph = {
'A': {'B': 1, 'C': 4},
'B': {'A': 1, 'C': 2, 'D': 5},
'C': {'A': 4, 'B': 2, 'D': 1},
'D': {'B': 5, 'C': 1},
}
start = 'A'
end = 'D'
result = graphs.dijkstra(graph, start, end)
print("dijikstra:",result)
''' Output--
dijikstra: {'distance': 4, 'path': ['B', 'C', 'D']}
'''
Implémentation d'arbres :
from competitivepython import trees
# Create an instance of the BinarySearchTree
bst = trees.BinarySearchTree()
# Insert some values into the tree
bst.insert(50)
bst.insert(30)
bst.insert(20)
bst.insert(40)
bst.insert(70)
bst.insert(60)
bst.insert(80)
# Check if a value is present in the tree
print(bst.search(50)) # Output: True
print(bst.search(35)) # Output: False
# Get the values in the tree in in-order traversal order
print(bst.get_in_order_traversal()) # Output: [20, 30, 40, 50, 60, 70, 80]
Si vous souhaitez contribuer au projet compétitifpython, veuillez vous référer aux directives de contribution dans CONTRIBUTING.md. Nous acceptons les contributions de tous types, y compris les rapports de bogues, les demandes de fonctionnalités et les contributions de code.
compétitifpython est un logiciel open source publié sous licence MIT. Reportez-vous au fichier LICENSE pour plus d'informations.