Przesunięcie elementów w tablicy do prawej.

0

Witam,

Tablica ma 12 elementów typu int.
Nie wiem jak wyrównać elementy tablicy do prawej strony, tak by wyglądało to tak:

Przed Wyrównaniem :
[-2,-1,0,0,0,0,0,0,0,0,0,0]
Po wyrónaniu :
[0,0,0,0,0,0,0,0,0,0,-2,-1]

Proszę o pomoc

0

Wyrównanie to przesunięcie niezerowych elementów na koniec, z zachowaniem ich kolejności?

0

Możesz skorzystać z czegoś takiego:

 
public class ArrayUtils {
    public static int[] swapTab(int[] tab) {
        int[] tabAfterSwap = new int[tab.length];
 
        for (int i = 0; i < tab.length; i++) {
            tabAfterSwap[i] = tab[tab.length - 1 - i];
        }
 
        return tabAfterSwap;
    }
}

lub gdy nie chcemy tworzyć nowej tablicy:

 
public static int[] reverseArray(int[] array) {
    for (int i = 0; i < array.length / 2; i++) {
        int temp = array[i];
        array[i] = array[array.length - i - 1];
        array[array.length - i - 1] = temp;
    }

    return array;
}

Ps. Racja wyrównanie to raczej złe słowo, lepsze byłoby raczej odwórcenie kolejności elementów tablicy tak, aby pierwszy element był ostatnim, drugi przedostatnim etc

AAaa.. ok nie zauważyłem, że chodzi o co innego. Myślałem, że o odwrócenie kolejności elementów tablicy. Mój kod służy właśnie do tego.

0
int ilecyfr=0;
        for(int i=0;i<tab.length;i++)
            if(tab[i]!=0) ilecyfr++;
        for(int x=0;x<ilecyfr;x++){
            for(int i=0;i<tab.length-1;i++){
                if(tab[i]!=0 && tab[i+1]==0){
                    temp =  tab[i];
                    tab[i] = tab[i+1];
                    tab[i+1] = temp;     
                }
            }
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1