21 votes

Inverser l'ordre du tableau

J'essaie d'inverser l'ordre d'un tableau en Java.
Quel est le moyen le plus efficace de le faire en O(n) avec le moins de mémoire utilisée.
Il n'est pas nécessaire de répondre par un code, un pseudo-code fera l'affaire.
Voici ma façon de penser :

  create a new temp array //I think this is a waste of memory, 
                          //but I am not sure if there's a better way
 grab elements from the end of the original array -decrement this variable
 insert element in beginning of temp array -increment this variable
then make the original array point to the temp array? //I am not sure 
            //if I can do this in java; so let's say the 
            //original array is Object[] arr; and the temp array is 
            //Object[] temp. Can I do temp = arr; ?

Existe-t-il un moyen plus efficace de le faire, peut-être sans utiliser un tableau temporaire ? et enfin, supposez qu'il n'y a pas de nulls dans le tableau, donc tout peut fonctionner. Je vous remercie

Edit : non ce n'est pas un devoir.

-1voto

Andy Points 67

Si nous considérons que le tableau est un tableau d'entiers, nous pourrions également chercher une solution comme celle-ci

arr - tableau d'entiers

for(int i=0,int J<arr.length-1 ; i<j ; i++,j--)
{
    temp =a[i];
    a[i]=a[j];
    a[j]=temp;
 }

-2voto

mcfinnigan Points 5774

Pseudocode, en supposant des tableaux à index 0 :

for i in range(0, len(array)/2):
     swap(array[i], array[(len(array)-1)-i])

-2voto

Darshan Points 11

Vous pouvez le faire en deux étapes seulement

ArrayList<Element> YourTempElement= new ArrayList<Element>(mElements);
Collections.reverse(YourTempElement);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X