Some algorithms implementation for practice and fun