Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Rekursiver Aufruf - Was geht da eigentlich vor sich? (https://www.delphipraxis.net/142997-rekursiver-aufruf-geht-da-eigentlich-vor-sich.html)

3_of_8 8. Nov 2009 17:39

Re: Rekursiver Aufruf - Was geht da eigentlich vor sich?
 
Also inherited selbst meinte irgendwas von n log n, aber wenn ich mir das so ansehe, sieht es nach was anderem aus.

Er hat - je nachdem, ob n gerade oder ungerade ist - 2 oder 3 Rekursionsbäume bei jedem Funktionsaufruf und die Rekursionstiefe ist in etwa ld n. Daraus ergibt sich als untere Grenze O(2^(ld n))=O(n) und als obere Grenze O(3^(ld n))=O(3^((log3 n)/(log3 2))=O(n), also O(n)... wenn ich mich jetzt nicht verrechnet habe...

Khabarakh 8. Nov 2009 19:30

Re: Rekursiver Aufruf - Was geht da eigentlich vor sich?
 
Du darfst die Memoisation nicht vergessen, denn die Aufrufe in der gleichen Rekursionstiefe überlappen sich stark. Wenn ich das richtig sehe, kommen mit jeder Rekursionstiefe höchstens zwei dazu, also insgesamt 2i+1 bei der Tiefe i. Summiert von 1 bis log n also O(log² n).

sirius 8. Nov 2009 20:12

Re: Rekursiver Aufruf - Was geht da eigentlich vor sich?
 
Nochmal zur Eingangsfrage:
Ich habe hier eine powerpoint-Prä gemacht, welche die Rekursion mal verdeutlichen soll:
http://www.delphipraxis.net/internal...196&highlight=


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz