x-kom hosting

[ALGO]Sortowanie przez scalanie

lightinside
utworzono
utworzono (edytowane)

Mam takie pytanie, gdy wywoła się funkcja sort_scal(A,p,q)


Sort_scal(A,p,r)
if p<r then
q<-(p+r)div2
Sort_scal(A,p,q)
Sort_scal(A,q+1,r)
scal(A,p,q,r)

to będzie to wyglądać tak?

sort_scal(A,p,q)
if p< r then
?<-(p+q)div 2
sort_scal(A,p,q)
sort_scal(A,q+1,r)
scal(A,p,q,r)

I jaka zmienna zamiast '?' ?? r?

 

ps zamiast r tam w ifie to oczywiście q

torreado
komentarz
komentarz

Nie bardzo wiem o co Ci chodzi - praktycznie dwa razy przepisałeś to samo, tylko z inną zmienną....

rafalluz
komentarz
komentarz

Zapewne ma być r, ale wtedy wywołania rekurencyjne mają argumenty w niepoprawnej kolejności.

 

Wtedy miałoby być:

sort_scal(A,p,q)
if p< q then
r<-(p+q)div 2
sort_scal(A,p,r)
sort_scal(A,r+1,q)
scal(A,p,r,q)
lightinside
komentarz
komentarz

Chodzi mi o to co się dzieję gdy funkcja wywoła funkcję którą ma w sobie i co tam zachodzi....

 

Czemu? Aby łatwiej to zrozumieć.

 

Rafalluz dzięki :)

 

Sprawdzę to na kartce czy wychodzi jak powinno ;)

torreado
komentarz
komentarz

A więc nie chodzi Ci o kod algorytmu, ale o to w jaki sposób działa rekurencja - bo jeżeli to pojmiesz, to będziesz wiedział jak działa algorytm który napisałeś. Proponuję, żebyś przeanalizował sobie jak działa silnia -> http://www.algorytm.edu.pl/rekurencja-zadania/73-silnia-rekurencyjnie.html

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.