python implementation of classic dsa algorithms