<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Funktionsaufruf]]></title><description><![CDATA[<p>Hier eine Version des Quicksort wobei ein Teil als partition ausgelagert wurde.</p>
<pre><code>int partition(int* input, int p, int r)
{
    int pivot = input[r];

    while ( p &lt; r )
    {
        while ( input[p] &lt; pivot )
            p++;

        while ( input[r] &gt; pivot )
            r--;

        if ( input[p] == input[r] )
            p++;
        else if ( p &lt; r )
        {
            int tmp = input[p];
            input[p] = input[r];
            input[r] = tmp;
        }
    }

    return r;
}

void quicksort(int* input, int p, int r)
{
    if ( p &lt; r )
    { 
        int j = partition(input, p, r);        
        quicksort(input, p, j-1);
        quicksort(input, j+1, r);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/319808/funktionsaufruf</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 20:59:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319808.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Sep 2013 08:49:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionsaufruf on Wed, 04 Sep 2013 08:49:38 GMT]]></title><description><![CDATA[<p>Hier eine Version des Quicksort wobei ein Teil als partition ausgelagert wurde.</p>
<pre><code>int partition(int* input, int p, int r)
{
    int pivot = input[r];

    while ( p &lt; r )
    {
        while ( input[p] &lt; pivot )
            p++;

        while ( input[r] &gt; pivot )
            r--;

        if ( input[p] == input[r] )
            p++;
        else if ( p &lt; r )
        {
            int tmp = input[p];
            input[p] = input[r];
            input[r] = tmp;
        }
    }

    return r;
}

void quicksort(int* input, int p, int r)
{
    if ( p &lt; r )
    { 
        int j = partition(input, p, r);        
        quicksort(input, p, j-1);
        quicksort(input, j+1, r);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2350172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2350172</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 04 Sep 2013 08:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsaufruf on Wed, 04 Sep 2013 08:52:40 GMT]]></title><description><![CDATA[<p>Wenn ich partition jetzt nicht mehr auslagere funktioniert es auf einmal nicht mehr. Statt dem Funktionsaufruf kopiere ich das was in der Funktion steht alles in quicksort rein.</p>
<pre><code>void quicksort(int* input, int p, int r)
{
    if ( p &lt; r )
    {
		 int pivot = input[r];   // hier gehts los mit partition

    while ( p &lt; r )
    {
        while ( input[p] &lt; pivot )
            p++;

        while ( input[r] &gt; pivot )
            r--;

        if ( input[p] == input[r] )
            p++;
        else if ( p &lt; r )
        {
            int tmp = input[p];
            input[p] = input[r];
            input[r] = tmp;
        }
    }
        int j = r;       // hier der return wert von partition 
        quicksort(input, p, j-1);
        quicksort(input, j+1, r);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2350174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2350174</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 04 Sep 2013 08:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsaufruf on Wed, 04 Sep 2013 08:57:02 GMT]]></title><description><![CDATA[<p>Benenne die Variablen p und r in partition mal in pp und rr um und füge das dann nochmal ein.</p>
<p>Die Veränderungen in partition bei p und r haben keinen Einfluss auf das p und r von quicksort.<br />
Innerhalb von quicksort dagegen schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2350175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2350175</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Wed, 04 Sep 2013 08:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsaufruf on Wed, 04 Sep 2013 08:57:28 GMT]]></title><description><![CDATA[<p>&quot;p&quot; und &quot;r&quot; werden per value an &quot;partition&quot; übergeben.</p>
<p>Wenn du den Code in die &quot;Hauptfunktion&quot; reinkopierst, musst du darauf achten, &quot;p&quot; und &quot;r&quot; am Anfang zu sichern, damit der rekursive Aufruf von &quot;quicksort&quot; nicht mit veränderten Werten vorgenommen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2350177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2350177</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 04 Sep 2013 08:57:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsaufruf on Wed, 04 Sep 2013 09:02:27 GMT]]></title><description><![CDATA[<p>jetzt gehts . Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code>void quicksort(int* input, int p, int r)
{
    if ( p &lt; r )
    {
		int rr = r;
		int pp = p; 
		int pivot = input[rr];

    while ( pp &lt; rr )
    {
        while ( input[pp] &lt; pivot )
            pp++;

        while ( input[rr] &gt; pivot )
            rr--;

        if ( input[pp] == input[rr] )
            pp++;
        else if ( pp &lt; rr )
        {
            int tmp = input[pp];
            input[pp] = input[rr];
            input[rr] = tmp;
        }
    }
        int j = rr;      
        quicksort(input, p, j-1);
        quicksort(input, j+1, r);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2350178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2350178</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 04 Sep 2013 09:02:27 GMT</pubDate></item></channel></rss>