A calculator to predict big-O of sorting functions
Project description
Big-O Caculator
A big-O calculator to estimate time complexity of sorting functions.
inspired by : https://github.com/ismaelJimenez/cpp.leastsq
Usage
You can call which array to test
Big-O calculator
Args:
functionName ([string]): function name to call
array ([string]): "random", "sorted", "reversed", "partial"
from bigO import bigO
def countSort(arr): # stable
# Time Complexity : O(n) | Space Complexity : O(n)
sortedArr = arr[:]
minValue = min(arr)
maxValue = max(arr) - minValue
buckets = [0 for x in range(maxValue + 1)]
for i in sortedArr:
buckets[i - minValue] += 1
index = 0
for i in range(len(buckets)):
while buckets[i] > 0:
sortedArr[index] = i + minValue
index += 1
buckets[i] -= 1
return sortedArr
tester = bigO.bigO()
complexity, _ = tester.test(countSort, "random")
complexity, _ = tester.test(countSort, "sorted")
complexity, _ = tester.test(countSort, "partial")
''' Result
Running countSort(random array)...
Completed countSort(random array): O(N)
Running countSort(sorted array)...
Completed countSort(sorted array): O(N)
Running countSort(partial array)...
Completed countSort(partial array): O(N)
'''
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
big-O calculator-0.0.2.tar.gz
(3.5 kB
view hashes)
Built Distribution
Close
Hashes for big_O_calculator-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b8abeb1ebfe5fd24a446c20377af622fcbc4e8fb83e7fd8ba3c3e7b2b9f41d0 |
|
MD5 | 46e67308b86fa9467905bf37c6b5eec9 |
|
BLAKE2b-256 | e8ca722942ac3d79c0d8520f3585291405a935a44d08bb6bed68d3b2e58186b8 |