Темпы роста
Одна из тем этой книги – сравнение альтернативных подходов к выполнению одного и того же задания. Почти в каждой главе мы сравнивали одно с другим, используя диаграмму темпов роста. Графики на этих диаграммах были преднамеренно не маркированы. Вот свод темпов роста от самого медленного (лучшее) до самого быстрого (худшее).
ПОСТОЯННОЕ ВРЕМЯ: при данном количестве элементов; если удвоить его, то время, требующееся для выполнения этого задания, останется тем же.
ЛОГАРИФМИЧЕСКОЕ ВРЕМЯ: для достаточно большого числа элементов; если удвоить их количество, то время, требующееся для выполнения задания, увеличится приблизительно на единицу.
ЛИНЕЙНОЕ ВРЕМЯ: для достаточно большого числа элементов; если удвоить их количество, время увеличится примерно вдвое.
ЛИНЕЙНО-ЛОГАРИФМИЧЕСКОЕ ВРЕМЯ: для достаточно большого числа элементов; если удвоить их количество, то время увеличится примерно вдвое и возрастет на один.
КВАДРАТИЧНОЕ ВРЕМЯ: для достаточно большого числа элементов; если удвоить их количество, то время увеличится в квадрате.
ЭКСПОНЕНТНОЕ ВРЕМЯ: для достаточно большого числа элементов; если мы увеличим его всего лишь на одну единицу, то время на выполнение этого задания вырастет примерно вдвое! Самая бледная линия с левого края каждой схемы в этой книге обозначает график экспонентного времени.