https://medium.com/the-tech-imposter/big-o-notation-how-to-identify-constant-logarithmic-and-linear-algorithms-fa64c19eaff7