0
votes

Quelle est la complexité temporelle de l'ajout et de l'élément dans une matrice Java?

Bonjour je suis des recherches à ce sujet, mais je ne trouve rien dans le site Web Oracle.

La question est la suivante.

Si vous utilisez un tableau statique comme celui-ci < pré> xxx

et vous voulez ajouter une certaine valeur à la position 4 de cette manière xxx

qui ne déplacez pas les éléments du tableau de sorte que La complexité du temps sera O (1) car si vous vous rendez à 0x000001, et que vous avez 10 espaces et que vous souhaitez mettre certains dans la position X, vous pouvez accéder par (x * tailleof (int)) + initialeMemoryPosition (Ceci est un pseudocode)

est-ce correct, est-ce la manière dont ce type de tableau fonctionne dans Java et si sa complexité de temps O (1)

Merci < / p>


3 commentaires

Vous n'ajoutez pas d'élément à un tableau, vous ne définissez qu'une valeur. C'est O (1).


Ok, mais dans la création des tableaux, c'est le même droit?


La création de tableau est O (n), car les éléments de tableau sont initialisés aux valeurs par défaut.


3 Réponses :


0
votes

Un tableau est quelque part en mémoire. Vous n'avez pas de contrôle où, et vous ne devriez pas vous soucier d'où il se trouve. Le tableau est initialisé lors de l'utilisation de la syntaxe Nouveau type [Taille] est utilisée.

Accéder à la matrice est effectué à l'aide de l'opérateur [] Index. Il ne modifiera jamais la taille ou la commande. Juste l'emplacement indexé si vous l'avez attribuée.

Voir aussi https://www.w3schools.com/java/java_arrays.asp a>

La complexité de temps est déjà correctement commentée. Mais c'est la préoccupation après avoir obtenu la syntaxe droite.

Un ancien poste concernant la complexité du temps des collections peut être trouvé Ici .


0 commentaires

1
votes

La question est basée sur une idée fausse: en Java, vous ne pouvez pas ajouter strong> d'éléments à un tableau.

Un tableau est attribué une fois, initialement, avec un nombre prédéfini d'entrées. Il n'est pas possible de changer ce numéro plus tard. P>

En d'autres termes: P>

int a[] = new int[5];
a[4] = 5;


0 commentaires

0
votes

Oui, il faut O (1) heure. Lorsque vous initialisez un tableau, disons, int [] foo = nouveau int [10] , Ensuite, cela créera un nouveau tableau avec 0s. Étant donné que INT a 4 octets, qui sont 32 bits, chaque fois attribuer une valeur à un élément, c'est-à-dire FOO [4] = 5, il fera FOO [32 x entrée (qui est 4)] = valeur (5). ); c'est pourquoi le tableau est 0-indexé et comment ils affectent des valeurs dans O (1) heure.


0 commentaires