Pomoc w zrozumieniu rekurencji w quick_sort
Ostatnio zmodyfikowano 2015-11-17 16:24
carlosmay |
» 2015-11-17 00:02:27 Normalnie chodzi to w Dev Cpp. Nie wiem o co się czepiacie :P |
a o to, że to są błędy u podstaw. To, że 'lipny' kompilator to uruchamia nie znaczy, że jest poprawne. Chcesz zrozumieć co się dzieje w kolejnych 'ramkach' stosu przy kolejnych wywołaniach funkcji, a ignorujesz podstawy programowania. |
|
maciek1o3s Temat założony przez niniejszego użytkownika |
» 2015-11-17 08:28:04 Hej dzieki ze mi odpowiedziales ale nadal nie rozumiem tego o co sie pytalem.
Na początku funkcja void quick_sort dzieli nam tablice t na t1 i t2. Potem wywołujemy funkcje quick_sort(t1, n1) dla tablicy t1. I teraz nie rozumiem tego, funkcja dzieli nam tablice t1 na tablice t1 i t2? To zrobi sie maslo maslane, tablica t1 zostanie nadpisana czy co? Mam rozumieć ze komputer wykryje ze nowa tablica t1 jest utworzona z poprzedniej t1 i jakos inaczej ja sobie oznaczy i nie nadpisze jej? |
|
carlosmay |
» 2015-11-17 11:00:18 Mam rozumieć ze komputer wykryje |
komputer nie zrobi nic czego mu nie każesz. Do tego służą polecenia i instrukcje przetłumaczone na język maszynowy. To zrobi sie maslo maslane, tablica t1 zostanie nadpisana czy co? |
i tutaj kłaniają się podstawy, przed którymi tak usilnie się bronisz! Jak przekazujesz tablicę do funkcji to funkcja odbiera adres przekazanego elementy (czyli tutaj t1 ==> t1[0]). Wniosek: funkcja zawsze działa na oryginalnej tablicy (każde działanie, zamiana wartości dzieje się w oryginale). Materiały: Funkcje pierwsze starcieTablice jednowymiarowePrzekazywanie tablic jednowymiarowych do funkcjiFunkcje kolejne aspekty Proponuje opanować te materiały i dopiero próbować zrozumieć co tam się dzieje. Google też wyszuka gro info na ten temat. |
|
maciek1o3s Temat założony przez niniejszego użytkownika |
» 2015-11-17 16:13:29 Nie rozumiem co napisales. Jestem na pierwszym roku a wymagaja od nas rozumienia algorytmow, bez tlumaczenia podstaw wiec mi sie nie dzie.
Ja prosze o proste wytlumaczenie tego ze jesli tablica t zostala podzielona na t1 i t2 to jak potem tablice t1 mozemy znow podzielic na t1 i t2? Czy nie zrobi sie maslo maslane i t1 nie nadpisze sie nowa tablica? |
|
carlosmay |
» 2015-11-17 16:24:40 Nie rozumiem co napisales. |
brak podstaw!!!!!!!! Ja prosze o proste wytlumaczenie tego ze jesli tablica t zostala podzielona na t1 i t2 to jak potem tablice t1 mozemy znow podzielic na t1 i t2? Czy nie zrobi sie maslo maslane i t1 nie nadpisze sie nowa tablica? |
na tym to polega, żeby zamieniały się miejscami elementy w oryginalnej tablicy. Nie ma znaczenia, czy funkcja jest wywoływana m 'main()', czy wewnątrz siebie. Funkcja zawsze uruchamia się w ten sam sposób (argumenty są te same, tylko mają inne wartości). Póki nie nauczysz się tego z linków, nie zrozumiesz jak to działa!!! edit: PS: Czy ten kod z pierwszego posta sam modziłeś, czy taki był podany? edit2: Czy wiesz jak wygląda tablica w pamięci komputera? |
|
1 « 2 » |