## BigO.jl

Complexity estimation library
Author endremborza
Popularity
3 Stars
Updated Last
8 Months Ago
Started In
March 2021

# BigO

Julia library for complexity plotting and estimation

## Quickstart

```using Random
using BigO

function lamesort!(a)
for i in axes(a,1)
for j in 1:i
if a[i] < a[j]
a[j], a[i] = a[i], a[j]
end
end
end
end

function _merge(a1::AbstractArray{T, 1}, a2::AbstractArray{T, 1}) where {T}
n1, n2 = size(a1,1), size(a2,1)
n = n1 + n2
out = Array{T,1}(undef, n)
i, j = 1, 1
while i + j <= n + 1
if (i > n1) e = a2[j]; j += 1
elseif (j > n2) e = a1[i]; i += 1
elseif (a1[i] > a2[j]) e = a2[j]; j += 1
else e = a1[i]; i += 1 end
out[i+j - 2 ] = e
end
return out
end

function mergesort(a)
n = size(a, 1)
n == 1 && return a
h = n ÷ 2
return _merge(mergesort(a[1:h]), mergesort(a[h+1:n]))
end

report = RunReport([mergesort, lamesort!], randperm, 100:1000:10100, seconds=0.2; samples=200)
report |> bigos```

Dict{String,String} with 2 entries: "mergesort" => "O(n log n)" "lamesort!" => "O(n^p)"

```using Plots
report |> plot```

### Required Packages

View all packages

### Used By Packages

No packages found.