<?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[Quicksort]]></title><description><![CDATA[<p>Hallo Leute <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="🙂"
    /> <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>
<p>ich bin ein Neuling in c++ und versuche ein Quicksort programm zu schreiben. Es fehlen mir jedoch Kenntnisse in C++, deshalb bin ich für jede Hilfe sehr dankbar.<br />
Ich habe schon gegoogelt und nachgeforscht im Internet, aber es sind so viele Möglichkeiten wie man aus einer Text-Datei sortiert die Zahlen ausgibt und diese dann in eine andere Datei schreibt....habe hier Schwierigkeiten...help))</p>
<p>Die Aufgabe lautet so:</p>
<p>a-&gt;&gt; Implementieren Sie den Quicksort aus der Vorlesung in C++. Verwenden Sie dabei die in der Vorlesung vorgestellte Lomuto-Partition. Es sollen Felder mit ganzen Zahlen sortiert werden, die aus einer Textdatei einzulesen sind. Die Eingabedaten sollen zeilenweise vorliegen. Die Ausgabe des sortierten Feldes soll ebenfalls in Textdatei geschrieben werden</p>
<p>b-&gt;&gt; Generieren Sie Testdaten für das obige Programm für Feldlängen n1=100000,<br />
n2=1000000 und n3=5000000 mit zufälligen Werten aus dem Intervall {0,...,ni}.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295403/quicksort</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 11:15:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295403.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Nov 2011 16:34:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 16:34:52 GMT]]></title><description><![CDATA[<p>Hallo Leute <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="🙂"
    /> <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>
<p>ich bin ein Neuling in c++ und versuche ein Quicksort programm zu schreiben. Es fehlen mir jedoch Kenntnisse in C++, deshalb bin ich für jede Hilfe sehr dankbar.<br />
Ich habe schon gegoogelt und nachgeforscht im Internet, aber es sind so viele Möglichkeiten wie man aus einer Text-Datei sortiert die Zahlen ausgibt und diese dann in eine andere Datei schreibt....habe hier Schwierigkeiten...help))</p>
<p>Die Aufgabe lautet so:</p>
<p>a-&gt;&gt; Implementieren Sie den Quicksort aus der Vorlesung in C++. Verwenden Sie dabei die in der Vorlesung vorgestellte Lomuto-Partition. Es sollen Felder mit ganzen Zahlen sortiert werden, die aus einer Textdatei einzulesen sind. Die Eingabedaten sollen zeilenweise vorliegen. Die Ausgabe des sortierten Feldes soll ebenfalls in Textdatei geschrieben werden</p>
<p>b-&gt;&gt; Generieren Sie Testdaten für das obige Programm für Feldlängen n1=100000,<br />
n2=1000000 und n3=5000000 mit zufälligen Werten aus dem Intervall {0,...,ni}.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143994</guid><dc:creator><![CDATA[julchatt]]></dc:creator><pubDate>Sun, 13 Nov 2011 16:34:52 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 16:45:38 GMT]]></title><description><![CDATA[<p>Wie sehen die Dateien aus? Wo liegt dein Problem? Beim Einlesen oder beim Sortieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144001</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 13 Nov 2011 16:45:38 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 17:08:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe schon so viel im internet nachgeschaut, so viele Möglichkeiten gibts da...also es fehlt mir einfach irgendwie Ansatz wie ich die main() schreibe, dass ich aus einer .txt Datei Zahlen mit Hilfe des Quicksort-Algorithmus auf die console ausgebe und diese sortierte Folge dann in eine .txt Datei gespeichert wird und gleichzeitig muss ich die Testdaten für unterschiedliche Feldlänge generieren.</p>
<p>Ich habe bis jetzt nur die Quicksort Funktion, die ich gerade versuche in main aufzurufen, komme mir total blöd vor, dass es irgendwie nicht klappt, meine Kenntnisse in c++ sind wie gesagt noch ziemlich mangelhaft...ich habe viele puzzle Teile und weiß nicht wie ich diese zusammenfüge, dass das Programm vernünftig läuft...</p>
<p>Bin dankbar für jede Hilfe! <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="🙂"
    /> <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="🙂"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2144017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144017</guid><dc:creator><![CDATA[julchatt]]></dc:creator><pubDate>Sun, 13 Nov 2011 17:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 17:18:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool readLine(const std::string &amp;filename, std::vector&lt;int&gt; &amp;buf);
void writeLine(const std::string &amp;filename, const std::vector&lt;int&gt; &amp;numbers);
void quicksort(std::vector&lt;int&gt; &amp;numbers);

int main()
{
  std::vector&lt;int&gt; numbers;
  while (readLine(&quot;infile.txt&quot;, numbers))
  {
    quicksort(numbers);
    writeLine(&quot;outfile.txt&quot;, numbers);
  }
}
</code></pre>
<p>Jetzt musste nur noch die Funktionen oben mit Leben füllen. <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="🙂"
    /><br />
(Was du dir angucken solltest: std::ifstream, std::ofstream, std::swap())</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144023</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 13 Nov 2011 17:18:16 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 17:23:02 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> <strong>Programmieren != Bruchstücke aus dem Internet zusammensuchen</strong></p>
<p>Programmier es selbst. Das ist der Sinn der Aufgabe. Wenn eine Aufgabe zuerst überwältigend erscheint, teil sie in Teilprobleme auf. Hier bieten sich als Teilprobleme Einlesen, Sortieren und ausgeben an. Diese sind unabhängig voneinander, bis auf das gemeinsame Datenfeld. Hierdurch ist auch schon klar, wie die main aussehen muss: Dur brauchst dort das gemeinsame Datenfeld. Dieses wird an die Einlesefunktion gegeben und dort gefüllt. Wenn's schick sein soll, dann gibst du der Einlesefunktion auch noch einen Dateinamen oder einen Stream mit auf dem Weg, um die Einlesefunktion so allgemein wie möglich zu halten. Dann wird das Datenfeld an die Sortierfunktion übergeben, die diese sortiert. Und dann an die Ausgabefunktion.</p>
<p>Jede Einlesen und Ausgeben sollten auf deinem Kenntnisstand recht einfach zu schreiben sein (ansonsten solltest du dir Sorgen machen), das interessante ist natürlich die Sortierfunktion. Hier hast du ja genaue Angaben aus der Vorlesung vorgegeben die hoffentlich reichen, das Problem zu lösen.</p>
<p>edit: Kurz: So wie cooky451 vorgegeben hat. Wobei ich nicht verstehe, was er da mit der Schleife will. Sinnvollerweise sollten doch wohl alle Daten gelesen werden, bevor man sortiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144026</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 13 Nov 2011 17:23:02 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 17:27:45 GMT]]></title><description><![CDATA[<p>Vielen Dank!!!!! Ich probiere es jetzt aus...</p>
<p><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="🙂"
    /> <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="🙂"
    /> <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="🙂"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2144030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144030</guid><dc:creator><![CDATA[julchatt]]></dc:creator><pubDate>Sun, 13 Nov 2011 17:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 17:40:20 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>edit: Kurz: So wie cooky451 vorgegeben hat. Wobei ich nicht verstehe, was er da mit der Schleife will. Sinnvollerweise sollten doch wohl alle Daten gelesen werden, bevor man sortiert.</p>
</blockquote>
<p>Ich hatte verstanden, dass er jede Zeile einzeln sortieren möchte. Das schien mir so am einfachsten. (Vielleicht nicht am performantesten, aber das dürfte hier wohl egal sein.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144032</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 13 Nov 2011 17:40:20 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 17:53:48 GMT]]></title><description><![CDATA[<p>ich habe die meine .txt-Datei so auf die console ausgegeben...kann ich denn in diesem code-Stück auch die quicksort aufrufen, dass quasi beim Öffnen der Datei quicksort aufgerufen wird und sortiert auf der console erscheint?</p>
<p>//-----------------------------------------------------<br />
FILE * pFile;<br />
char mystring [50];</p>
<p>pFile = fopen (&quot;text.txt&quot; , &quot;r&quot;);<br />
if (pFile == NULL) perror (&quot;Error opening file&quot;);<br />
else {<br />
if ( fgets (mystring , 100 , pFile) != NULL ) //fgets(zeile,256,file);<br />
puts (mystring);<br />
fclose (pFile);<br />
}</p>
<p>//-----------------------------------------------------</p>
<p>mein quicksort sieht folgend aus:</p>
<p>void quicksort(int a[], int l, int r);</p>
<p>void quicksort(int a[], int l, int r){<br />
if(l&lt;r){<br />
int s=partition(a, l, r);<br />
quicksort(a, l, s-1); //sortiere linke Teilliste kleiner/gleich-Elemente<br />
quicksort(a, s+1, r);</p>
<p>int partition(int a[], int l, int r){<br />
int li, re, pivot, temp;<br />
li = l; re = r;<br />
// int s=mitte(a, links, rechts); //tri median<br />
int s=rand()%(re-li+1)+li; //zufaellig<br />
pivot = a[s];</p>
<p>do<br />
{<br />
while (a[li] &lt;= pivot &amp;&amp; li&lt;re)<br />
li++;<br />
while (a[re] &gt;= pivot &amp;&amp; re&gt;li)<br />
re--;</p>
<p>if (li &lt; re){<br />
tausche(a, li, re);<br />
li++;<br />
re--;<br />
}<br />
}while (li &lt; re);</p>
<p>if(li&lt;=s &amp;&amp; a[li]&gt;=pivot || a[li]&lt;pivot &amp;&amp; li&gt;s)<br />
tausche(a, li, s);<br />
else if(li&lt;s &amp;&amp; a[li]&lt;pivot)<br />
tausche(a, ++li, s);<br />
else<br />
tausche(a, --li, s);</p>
<p>return li;<br />
}<br />
/**********************************************<br />
partition<br />
**********************************************/<br />
/<em>int partition(int a[], int l, int r) {<br />
pivot = a[r];<br />
i = l-1;<br />
for j=l to r-1 {<br />
if( a[j] &lt;= Pivot ) {<br />
i = i+1;<br />
vertausche( a[i], a[j] );<br />
}<br />
vertausche( a[i+1], a[r] )<br />
return i+1<br />
}<br />
}</em>/</p>
<p>/**********************************************<br />
tausche<br />
**********************************************/<br />
void tausche(int a[],int l, int r){<br />
int help = a[l];<br />
a[l] = a[r];<br />
a[r] = help;</p>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144038</guid><dc:creator><![CDATA[julchatt]]></dc:creator><pubDate>Sun, 13 Nov 2011 17:53:48 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 18:08:13 GMT]]></title><description><![CDATA[<p>Willst du C oder willst du C++ schreiben? Denn das da oben ist reines C, aber du fragst nach C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144043</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 13 Nov 2011 18:08:13 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort on Sun, 13 Nov 2011 18:16:04 GMT]]></title><description><![CDATA[<p>shit...klar...ja ich brauche es in C++ ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144048</guid><dc:creator><![CDATA[julchatt]]></dc:creator><pubDate>Sun, 13 Nov 2011 18:16:04 GMT</pubDate></item></channel></rss>