Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

BubbleSort - pytanie o podstawy

Ostatnio zmodyfikowano 2015-10-19 01:29
Autor Wiadomość
maciek1o3s
Temat założony przez niniejszego użytkownika
» 2015-10-18 23:17:44
A cos wiecej... ?

Serio myślisz że jak pytam sie o takie podstawy podstaw to domyślę się o co Ci chodziło? :P
P-138848
maciek1o3s
Temat założony przez niniejszego użytkownika
» 2015-10-18 23:18:22
P-138849
michal11
» 2015-10-18 23:23:13
Ale co więcej ? W kodzie masz np.
tab[ j ]
 a w symulacji
C/C++
i = 1
tab[ 1 ] > tab[ 2 ]

Poprawnie powinno  być :
C/C++
i = 1
j = 1
tab[ 1 ] > tab[ 2 ] = > prawda to..
j = 2
tab[ 2 ] > tab[ 3 ] = >...
...
j = 4
tab[ 4 ] > tab[ 5 ] = >...
j = 5 5 <= 5 - 1 = > falsz
i = 2
j = 1
...

Mniej więcej tak to powinno wyglądać
P-138850
carlosmay
» 2015-10-18 23:33:54
Czy nie powinno być w warunkach dla forów i=0 i j=0?
 Powinno być.

Ponadto czemu w drugim forze mamy warunek j<=n-i, nie powinno być j<=n-1?
 Powinno być
j < n - 1
 , w przeciwnym razie wyjdziesz poza zakres dla
tab[ j + 1 ]
 
W książkach też pojawiają się błędy.

To powinno rozwiać wątpliwości.
bubble sort
P-138851
maciek1o3s
Temat założony przez niniejszego użytkownika
» 2015-10-18 23:37:06
Dzieki bardzo ale to nadal wiele nie tlumaczy bo:
C/C++
void BubbleSort()
{
    for( int i = 1; i < n; i++ )
    for( int j = 1; j <= n - i; j++ )
    if( tab[ j ] > tab[ j + 1 ]
    {
        int x = tab[ j ];
        tab[ j ] = tab[ j + 1 ];
        tab[ j + 1 ] = x;
    }
}

ciag: 2,1,3,5,4

dla i=1, j=1
mamy tab[1] > tab [2] czyli 2 > 1
to zamieniamy kolejnosc i mamy ciag: 1,2,3,5,4

dla j=2 mamy nie spelniony warunek tab[2]>tab[3]

dla j=3 mamy nie spelniony warunek tab[3]>tab[4]

dla j=4 mamy spelnione 4<=5-1 i tab[4]>tab[5]

tak wiec mamy 1,2,3,4,5

ale algorytm o tym nie wie wiec lecimy dalej

dla j=5 mamy nie spelnioy warunek j<=n-i, bo mamy 5<=4

to dalej mamy:
i=2, j=6
i tez nie spelniamy warunku j<=n-i bo mamy 6<=3 no i tak dalej juz nie bedziemy spelniac warunku.

Ale powiedz mi skad tobie wyszlo i=2 i j=1? To jak skoncze to wewnetrzne for i zaczne drugi raz robic duze for to j mi wraca do pozycji poczatkowej czyli j=1 a nie j=6?

I tak generalnie po co jest to zewnetrzne for jesli to wewnetrzne juz mi uporzadkowalo caly rzad? Po co mam algorytmowi kazac przechodzic przez wszystkie i od i=1 do i=n-1 jesli wszystko co mialo byc zrobione zostalo zrobione dla i=1?
P-138852
michal11
» 2015-10-18 23:40:24
Tak, to jest zmienna lokalna, poczytaj o zakresie zmiennych.
P-138853
maciek1o3s
Temat założony przez niniejszego użytkownika
» 2015-10-18 23:43:34
Okej, już skumałem. To powiedz mi jeszcze po co jest to zewnetrzne for jesli to wewnetrzne juz mi uporzadkowalo caly rzad? Po co mam algorytmowi kazac przechodzic przez wszystkie i od i=1 do i=n-1 jesli wszystko co mialo byc zrobione zostalo zrobione dla i=1? To tylko wydłuży czas jego pracy.
P-138854
michal11
» 2015-10-18 23:44:41
I tak generalnie po co jest to zewnetrzne for jesli to wewnetrzne mi uporzadkowalo caly rzad?
Jeżeli nie wiesz jak działa algorytm to sobie poszukaj tych informacji w książce lub internecie (nawet na YouTube są ciekawe filmiki). Wydaje mi się, że odpowiedzieliśmy już na twoje pytania z pierwszego postu.
P-138855
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona