Я хочу использовать Big O Notation, чтобы убедить других в улучшении кода - как для эффективности, так и для читаемости. Но я не уверен, что я ошибаюсь.Big O Notation Sumation confusion
Из Big O Notation я понимаю, что O (n) + O (n) = O (n) (приблизительный). Значит, постоянная впереди пренебрежимо мала.
Однако, принимая пример, скажем для цикла
//Case 1: One For-Loop - O(n)
for(var i=0;i<n;i++)
{
doA(i);
doB(i);
}
Для лучшей читаемости, я предпочитаю писать таким образом:
//Case 2: Two For-Loop - O(n) + O(n)
function doA(){
for(var i=0;i<n;i++){
//do logic A
}
}
function doB(){
for(var i=0;i<n;i++){
//do Logic B
}
}
Такое, что я могу не откладывая вызывающему
doA();
doB();
... без петли снаружи.
Теперь проблема в том, что я не могу убедить себя, ЕСЛИ это для цикла фактически занимает 10 секунд. Тогда O (n) + O (n) составляет фактически 20 секунд. Как можно сказать, что O (n) + O (n) приближенно-способно к O (n)
ОК. Спасибо за ваше объяснение. Кажется, я не могу применить это к моему делу (используйте несколько for-loops для лучшей читаемости) – zeroflaw