Zitat Zitat von uncreative Beitrag anzeigen
Ich könnte mich auch komplett irren aber wäre das nicht in etwa das hier?:

Code:
for(int i = 0; i<L.size();i++)
{
    for(L[i].value = L[i].min; L[i].value<L[i].max; L[i].value += L[i].delta)
    {code;}
}
Immerhin iterierst du doch für jeden wert in L immer in gleicherweise.
Naja ich hoffe das ist es.
Nein, das ist es nicht. Ausgerollt ergibt dein Code folgendes:

Code:
N = L.size();
for(L[0].value = L[0].min; 
     L[0].value<L[0].max; 
     L[0].value += L[0].delta) {code;}
for(L[1].value = L[1].min; 
     L[1].value<L[1].max; 
     L[1].value += L[1].delta) {code;}
...
for(L[N].value = L[N].min; 
     L[N].value<L[N].max; 
     L[N].value += L[N].delta) {code;}
Das ist von Komplexitaet M*N, wobei M die durchschnittliche Laenge der einzelnen Schleifen ist.

Bei mir saehe der code anders aus.

Code:
N = L.size();
for(L[0].value = L[0].min; 
  L[0].value<L[0].max; 
  L[0].value += L[0].delta) {
for(L[1].value = L[1].min; 
  L[1].value<L[1].max; 
  L[1].value += L[1].delta) {
...
for(L[N].value = L[N].min; 
  L[N].value<L[N].max; 
  L[N].value += L[N].delta) {code;} ... } }
Das ist Komplexitaet M^N