Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Konvertera Rekursiv att Iterativ

    rekursiva algoritmer är de algoritmer som kan kalla sig som en del av lösningen . Dessa funktioner fungerar ofta på problem som innehåller en serie av identiska sub- problem , liksom träd traversering eller faktoriell beräkning . Upprepade ringa samma funktion om och om igen kan göra arbetet långsamt , även om det kan göra kodning enklare . För att öka exekveringshastighet , kan du återskapa rekursiva algoritmer , såsom faktoriella algoritmen , i en något mer komplicerad iterativ algoritm med slingor som ska köras mycket snabbare . Instruktioner
    1

    Analysera rekursiva algoritmen . I det här exemplet ska du använda den rekursiva lösningen för fakulteten problemet :

    int faktoriell ( int faktum ) {

    om ( faktum == 0 ) {return 1 ; } else {return faktum * faktoriell ( faktum - 1 ) ;} }
    2

    avgöra om någon funktionsargumenten kan hållas i variabler . I faktoriella exempel kan resultaten av faktoriell lagras i en variabel " total_factorial " för varaktigheten av någon iteration. Detta exempel visar rekursiva faktoriell algoritm och variabeln som ska användas för den rekursiva argumentet :

    int total_factorial = 0 : Addera 3

    Bestäm en slinga struktur . I C + + , till exempel , fungerar " medan " loop väl med iterationer som har en indeterminant längd . " För " loopar , å andra sidan , fungerar bra när en loop kommer att gå för en strikt tid , representerad av ett heltal av något slag . För faktoriella exempel kommer en "för" loop fungera bra :

    int faktoriell = 5 ; int total_factorial = 0;
    4

    Bestäm stoppa förhållanden. Vanligtvis , såsom i den faktoriella exempel kommer rekursion upphöra om ett villkor är uppfyllt . I en Interative slinga , t.ex. för slingan , hjälper det att veta innan handen . Eftersom du vet att finna fakulteten av ett antal " n" som du kommer att iterera n- 1 gånger ( utöver noll ) , kan du börja på en och kör tills faktoriell nummer :

    for (int i = 1 ; i < = faktoriell , i + + ) { if (i == 1 ) { total_factorial = 1 ; } else { total faktoriell * = i ; } } Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Sekventiell Datatyp
    ·Hur man spelar QCP
    ·Hur man kompilerar en SWF i FlashDevelop
    ·Vilka är de två språk som används mest för Profess…
    ·Hur man förstör Word-dokument
    ·Hur sortera Silverlight DataGrid
    ·Hur du ändrar en SA Database Linje Lösenord Command
    ·Hur man gör en patch-fil
    ·Hur Decode felrättande koder via Linear Programming
    ·Hur man skapar mod filer i Fortran
    Utvalda artiklarna
    ·Fördelar med Microsoft NET
    ·Implicit Markörer vs Explicit Markörer
    ·Hur att avgränsa textfiler Data i Visual Basic 2003
    ·Användning av OLE i VB
    ·Jämför MySQL Vs . SQLite
    ·Hur man hittar ett String Insida av en sträng av PHP
    ·Hur man använder Flock funktionen i PHP
    ·Hur man kompilerar PHP Med SSL
    ·Hur Tillåt PHP att skriva till filen
    ·ActiveX Control Tutorial
    Copyright © Dator Kunskap http://www.dator.xyz