Teile Herrsche Rekursion



  • Hi
    wir ham da n klienes Problem...chen -> Letzte Zeile
    wär nett wenn jemand sich dem annehmen würde.

    bool f(int a[],int l, int r)
    {
    	if (l >= r)
    	{
    		for(int i=0; i<=r;i++)
    			cout << a[i] << ",";
    			cout << "(" << l << "," << r << ")" << endl;
    
    		return true;
    	}
    	else
    	{	
    		int m = (l+r)/2;
    
    		for(int i=0; i<=r;i++)
    			cout << a[i] << ",";
    			cout << "(" << l << "," << m << "," << r << ")" << endl;
    
    		return f(a,l,m) && (a,m+1,r) && a[m] <= a[m+1]; //keine ahnung was diese zeile bewirkt
    	}
    }
    

    <edit>Bitte Code-Tags verwenden!</edit>



  • vielleicht hilft es, wenn du uns sagst, was die Funktion bewirken soll und was die Parameter bedeuten....



  • naja das is halt ein boolscher Ausdruck wo wahr oder falsch rauskommt, und der erste Teil ist ein rekursiver Aufruf der Funktion wie du schon selber festgestellt hast



  • habens selber ausgeknobelt....
    trotzdem danke....!!

    p.s.



  • Überprüft diese Funktion ob ein Array sortiert ist? Wieso nicht einfach iterative vorgehen?



  • bezeichner sind deine Freunde, also behandel sie ordentlich. Sie mögens zum Beispiel sehr, wenn sie aus mehr als einem Buchstaben bestehen, dann fühlen sie sich pudelwohl 😉



  • Sieht irgendwie nach einem verhunztem Quicksort aus. Nur das es nicht sortiert.



  • das soll wohl mal ein quicksort werden. enthält auch einige tippfehler. so fehlen die geschweiften kammern bei for und bei return fehlt das f vor (a,m+1,r). quasi ein quicksort, das noch im bau ist.

    ich denke mal, der rückgabewert soll ein selbsttest sein, ob die funktion auch richtig sortiert: true==alles ok; false==falsch sortiert, sortierroutine enthält einen fehler.


Anmelden zum Antworten