Алгоритм должен удовлетворять следующим требованиям:
быть простым для понимания и перевода в программный код и отладки;
эфективно использовать вычислительные ресурсы;
быстро выполняться;
иметь множественность решений.