competitivopython é uma biblioteca de código aberto de algoritmos e estruturas de dados implementadas em Python. Ele oferece uma coleção de algoritmos e estruturas de dados usados com frequência que podem ser usados diretamente em qualquer projeto baseado em Python.
Para instalar a biblioteca competitivapython, basta executar o seguinte comando:
pip install competitivepython
Para usar o competitivapython em seu projeto, importe o algoritmo ou estrutura de dados desejada e use-a conforme necessário. Abaixo estão alguns exemplos de casos de uso:
Implementando pesquisas:
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]
'''
Implementando classificação:
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]
'''
Implementando gráficos:
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']}
'''
Implementando árvores:
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]
Se você gostaria de contribuir para o projeto competitivopython, consulte as diretrizes de contribuição em CONTRIBUTING.md. Aceitamos contribuições de todos os tipos, incluindo relatórios de bugs, solicitações de recursos e contribuições de código.
competitivopython é um software de código aberto lançado sob a licença do MIT. Consulte o arquivo LICENSE para obter mais informações.