Система обозначений Big-O предназначена для описания поведения алгоритма в пределе при переходе n к бесконечности. Это гораздо проще для теоретического исследования, чем для практического эксперимента. Я бы выбрал для изучения вещи, которые вы можете легко измерить и которые волнуют людей, такие как точность и использованные ресурсы компьютера (время / память).
Когда вы пишете и запускаете компьютерную программу для сравнения двух алгоритмов, вы проводите научный эксперимент, точно так же, как кто-то, кто измеряет скорость света, или кто-то, кто сравнивает показатели смертности курящих и некурящих, и многие из применяются те же факторы.
Попробуйте выбрать примерную проблему или задачи для решения, которые являются репрезентативными или, по крайней мере, интересными для вас, поскольку ваши результаты могут не обобщаться на ситуации, которые вы на самом деле не тестировали. Возможно, вам удастся расширить диапазон ситуаций, на которые отвечают ваши результаты, если вы сделаете выборку на случайной основе из большого набора возможных проблем и обнаружите, что все ваши случайные выборки ведут себя примерно одинаково или, по крайней мере, следуют почти одинаковой тенденции. Вы можете получить неожиданные результаты, даже если теоретические исследования показывают, что должна быть хорошая логарифмическая тенденция, потому что теоретические исследования редко объясняют внезапное исчерпание кеша, нехватку памяти или, как правило, даже такие вещи, как целочисленное переполнение.
Будьте бдительны в отношении источников ошибок и постарайтесь свести их к минимуму, или сделайте так, чтобы они применялись в той же степени ко всем вещам, которые вы сравниваете. Конечно, вы хотите использовать одни и те же входные данные для всех тестируемых алгоритмов. Сделайте несколько прогонов каждого алгоритма и проверьте, насколько переменны вещи - возможно, несколько прогонов медленнее, потому что компьютер одновременно делал что-то еще. Имейте в виду, что кэширование может ускорить последующие запуски алгоритма, особенно если вы запускаете их сразу после друг друга. Время, которое вы хотите, зависит от того, что вы решаете измерять. Если у вас много операций ввода-вывода, помните, что современные операционные системы и компьютер кэшируют огромное количество дискового ввода-вывода в памяти. Когда-то я заканчивал тем, что выключал и снова включал компьютер после каждого запуска, как единственный способ убедиться, что кэш ввода-вывода устройства очищен.