algorithms OLD REPO: I just keep it in order to loose nothing. I'm splitting this big repository in smaller ones.