Source: https://www.pvpsiddhartha.ac.in/autonomous20/31/CSE/20CS6522.pdf