В недавнем комиксе комиксов завтрашнего утреннего завтрака, автор описывает алгоритм под названием Frog Sort для сортировки списка натуральных чисел. Алгоритм описан в комиксе, но для простоты я перепечатал его здесь:
- Для каждого из натуральных чисел, которые нужно отсортировать, создайте в нем поле с таким количеством мух.
- Поместите лягушку в каждую коробку.
- Пока не все лягушки выскочили из своих ящиков:
- Подождите, пока лягушка выпрыгнет из окна.
- Запишите количество мух, первоначально помещенных в поле.
- Результирующая последовательность чисел - это исходный список чисел, но в отсортированном порядке.
Этот алгоритм делает предположение, что все лягушки едят мухи с одинаковой скоростью. В результате первая лягушка, прыгающая из ее ящика, будет лягушкой, у которой было наименьшее количество мух для каждой, вторая лягушка - второе-меньшее количество мух, чтобы съесть и т.д.
В середине комикса учитель спрашивает студентов "Что такое максимальный номер шага?", который я интерпретирую как "какое максимальное количество шагов, необходимых для завершения этого алгоритма?"; то есть, какова продолжительность выполнения алгоритма? Затем ученик отвечает "log лягушка (боксы)."
Является ли это точный анализ времени выполнения этого алгоритма? Или автор ошибается?