https://medium.com/@hemrajaniyash1901/how-can-a-first-year-computer-science-student-thoroughly-understand-algorithms-and-data-structures-ea3eab854182