-
1. Data: 2009-08-30 15:23:29
Temat: jak optymalizować ze względu na znany warunek w wielokrotnie powtarzanym bloku?
Od: gupi man'a'go <2...@i...sk>
jak zapisać następujacy program tak, by ładny zapis składniowy nie kosztował
nieoptymalnie długiego czasu wykonywania?
int condition;
for( iterator_1 )
for( iterator_2 )
{ proc_1();
if( condition )
proc_2();
proc_3();
}
przed rozpoczęciem pętli, które nie są upraszczalne, znam wartość "condition", lecz
wartość ta może ulegać zmianie podczas wykonywania innych części programu.
tutaj program musiałby w każdym wykonaniu się pętli sprawdzać wartość "condition".
czy jedynym rozwiązaniem jest duplikacja z i bez wołania "proc_2"? czyli:
// 1:
int condition;
for( iterator_1 )
for( iterator_2 )
{ proc_1();
proc_3();
}
// 2:
int condition;
for( iterator_1 )
for( iterator_2 )
{ proc_1();
proc_2();
proc_3();
}
zamist pętli możemy umieścić dowolne bardzo zagłębione struktury wykonawcze, które
nie są upraszczalne z dowolnego względu.
--
-oh yea, i got it!
-oh, stupid!
D. Icke