Эффективность разделения одного цикла на два

Добрый день,

Предположим, у вас есть простой цикл for, как показано ниже...

for(int i=0;i<10;i++)
{
    //statement 1
    //statement 2
}

Предположим, что оператор 1 и оператор 2 были O(1). Помимо небольших накладных расходов на «запуск» другого цикла, будет ли разбиение цикла for на два (не вложенных, а последовательных) цикла одинаково быстрым? Например...

for(int i=0;i<10;i++)
{
    //statement 1
}
for(int i=0;i<10;i++)
{
    //statement 2
}

Почему я задаю такой глупый вопрос, так это то, что у меня есть система обнаружения столкновений (CDS), которая должна перебирать все объекты. Я хочу «разделить» функциональность моей системы CDS, чтобы я мог просто вызывать

cds.update(objectlist);

вместо того, чтобы ломать свою систему cds. (Не беспокойтесь слишком о моей реализации CDS... Я думаю, что знаю, что делаю, я просто не знаю, как это объяснить, что мне действительно нужно знать, так это то, что я получаю огромный удар по производительности из-за зацикливания через все мои объекты снова .

9
задан Matthew 9 March 2012 в 13:23
поделиться