Metadata-Version: 2.1
Name: big-O-calculator
Version: 0.0.2
Summary: A calculator to predict big-O of sorting functions
Home-page: https://github.com/Alfex4936
Author: Seok Won
Author-email: tjrdnjs33936@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3
Description-Content-Type: text/markdown
Requires-Dist: win10toast

# 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

```py
Big-O calculator

Args:
    functionName ([string]): function name to call
    array ([string]): "random", "sorted", "reversed", "partial"

```

```py
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)
'''
```

