Դենիսի ալգորիթմ