140 likes | 288 Views
Rekursion og rekursive algoritmer. Rasmus D. Lehrmann DM67 2010. Indhold. Hvad er algoritme pattern ? Hvad er rekursion ? Fibonacci Sweep Binære søgning Quicksort Hanoi’s tårne Kompleksitet Sorterings algoritmer Opsummering. Hvad er algoritme pattern ?.
E N D
Rekursion og rekursive algoritmer Rasmus D. Lehrmann DM67 2010
Indhold • Hvad er algoritme pattern? • Hvad er rekursion? • Fibonacci • Sweep • Binære søgning • Quicksort • Hanoi’s tårne • Kompleksitet • Sorterings algoritmer • Opsummering
Hvad er algoritme pattern? En metode til forenkling af et problem, ved at opdele problemet i underproblemer, af samme type. Inden for computer programmering kaldes dette del og hersk.
Hvad er rekursion? • En Problemløsningsteknik • Metode der kalder sig selv • Dette kan være søgning og sortering
Fibonacci • Talrækken • 1,1,2,3,5,8,13,21,34,55,89 • Rekursivt kald
Sweep • Er en for-each metode • Søger efter ikke-besøgte elementer • Udfører en metode • Fjerner elementet fra samlingen af ubesøgte
Sweep eksempel Så længe der er flere elementer i vores collection: • { Hent næste element hvis dette element indeholder den værdi vi søger efter: found = true else fjern elementet fra samlingen af ubesøgte } //end of loop If found Gør noget ved elementet
Binær søgning • En binær søgning foretages i sorteret collections • O = n * log(n) • Mergesort • Quicksort
Quicksort Der findes en række sorterings algoritmer, nogle bedre end andre! • Jeg vil fortælle om Quicksort: • Pivot • Del og sorter • Til sidst sammenflet
Quicksort eksempel • Vælg en pivot og sorter, sådan at mindre end er til venstre, og støre end er til højre • Del problemet op i mindre problemer og gentag til alle tal er sorteret
Hanoi’s tårne 3 søjler 1: Start 2: Hjælpe 3: Slut Flyt de 8 skiver fra Start til slut. 1 af gangen. En (simpel) udfordring, men tager tid.
Kompleksitet – Big O • Tid / pladsforbrug • Der snakkes om worst case og average • O(f(n))beskriver problemets størrelse • Betragter kun betydende led • Ser bort fra konstanter • Beskæftiger sig kun med store værdier af n
Opsummering Rekursion og rekursive algoritmer • Rekursion • Søgning • Mergesort • Quicksort • Sorterings algortime • Pivot • Del og sorter • Til sidst sammenflet • Man kan bruge Rekursion og rekursivealgoritmer til f.eks. at sorter data