La notazione di Big O alloca un array di elementi N

1

Nella notazione Big O, allocare un array di N elemento è definito da O (1) o O (n)? Ad esempio in C #, se alloco un array come questo:

int[] a = new int[10]

Quando visualizzo questo array, ho:

{0,0,0,0,0,0,0,0,0,0}
    
posta csblo 12.11.2014 - 10:57
fonte

1 risposta

3

Normalmente, la dimensione di un array non ha alcun effetto sulla complessità dell'allocazione stessa. AFAIK, un array è internamente un puntatore a un indirizzo in cui inizia l'array e campi nascosti per la dimensione dell'elemento e il numero di elementi. Quindi sarebbe O(1) .
Almeno questo è il caso in Object Pascal, anche se non sono sicuro per C # o altre lingue.

Ma trovare il frammento di memoria adatto per il tuo array ha una complessità più alta che dipende dalla dimensione a un certo punto ma dipende più da come funziona il gestore di memoria attivo: Tempo temporale dell'assegnazione della memoria .

    
risposta data 12.11.2014 - 11:23
fonte

Leggi altre domande sui tag