Source: https://web.cs.ucdavis.edu/~green/courses/ecs165a-w11/7-indexes.pdf