grokking-algorithms The most popular algorithms and data structures known and their analysis with Big-O notation