Последовательность действий алгоритма определяется не в последнюю очередь входными данными. Некоторые алгоритмы сортировки могут работать очень быстро, если входной список уже отсортирован, тогда как другие алгоритмы покажут весьма скромный результат на таком списке. А вот на случайном списке результат может оказаться противоположным. Нельзя ограничиваться анализом поведения алгоритмов на одном входном наборе данных. Нужно искать такие данные, которые обеспечивают как самое быстрое , так и самое медленное выполнение алгоритма. Кроме того, нужно оценивать и среднюю эффективность алгоритма на всех возможных наборах данных. При анализе необходимо рассматривать все типы возможных множеств входных значений, поскольку если ограничиться одним множеством, оно может оказаться тем самым, на котором решение самое быстрое (или самое медленное). В результате мы получим ложное представление об алгоритме. Разбиение различных входных множеств на классы в зависимости от поведения алгоритма ...