https://medium.com/@the_daft_introvert/from-o-1-to-o-2-n-navigating-the-complexities-of-big-o-notation-in-computer-science-ea98f301261