Sto leggendo questo post su Big-O
Dice che il seguente codice è O (n ^ 2):
bool ContainsDuplicates(String[] strings)
{
for(int i = 0; i < strings.Length; i++)
{
for(int j = 0; j < strings.Length; j++)
{
if(i == j) // Don't compare with self
{
continue;
}
if(strings[i] == strings[j])
{
return true;
}
}
}
return false;
}
Ma non riesco a capire perché.
Il ciclo interno fa qualcosa di costante.
Quindi è la somma di 1 ... N di una costante. cioè numero costante O (1).
Il ciclo esterno è la somma su O (1).
Quindi immagino che sia n * O (1).
Penso di aver frainteso qualcosa qui.
Non penso che tutti i cicli annidati significano O (n ^ 2), giusto?