<?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[Integer Werte nach Wertigkeit sortieren]]></title><description><![CDATA[<p>Hallo Leutz</p>
<p>ich möchte 3 Integer Werte der Größe nach sortieren:<br />
Hier ist ein teil meines Programms. Dieser Sortiert die erste Zahl an die richtige Stelle:</p>
<p>cout &lt;&lt; &quot;Bitte gib drei Integer Werte ein: \n&quot;;<br />
int wert1 = 0;<br />
int wert2 = 0;<br />
int wert3 = 0;<br />
int count1 = 0;<br />
int count2 = 0;<br />
int count3 = 0;<br />
cin &gt;&gt; wert1 &gt;&gt; wert2 &gt;&gt; wert3;<br />
//Wert1<br />
if ((wert1 &lt; wert2) &amp;&amp; (wert1 &lt; wert3))<br />
count1 = wert1;<br />
if ((wert1 &lt; wert2) &amp;&amp; (wert1 &gt; wert3))<br />
count2 = wert1;<br />
if ((wert1 &gt; wert2) &amp;&amp; (wert1 &lt; wert3))<br />
count2 = wert1;<br />
if ((wert1 &gt; wert2) &amp;&amp; (wert1 &gt; wert3))<br />
count3 = wert1;<br />
cout &lt;&lt; &quot;\n1. &quot; &lt;&lt; count1;<br />
cout &lt;&lt; &quot;\n2. &quot; &lt;&lt; count2;<br />
cout &lt;&lt; &quot;\n3. &quot; &lt;&lt; count3;</p>
<p><strong>Kann man das eleganter lösen ??</strong><br />
Bei 3 Werten wird es ja schon unübersichtlich wie wird es dann erst mit 5 oder mehr Werten.<br />
Ich wollte es am Anfang eigentlich mit einer While Anweisung prüfen und abarbeiten lassen also in einer Schleife das funktioniert aber nicht da die Abhängigkeit dann immer nur von einem Wert betrachtet wird.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/297112/integer-werte-nach-wertigkeit-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 14:38:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297112.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Dec 2011 14:39:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Mon, 19 Dec 2011 14:39:42 GMT]]></title><description><![CDATA[<p>Hallo Leutz</p>
<p>ich möchte 3 Integer Werte der Größe nach sortieren:<br />
Hier ist ein teil meines Programms. Dieser Sortiert die erste Zahl an die richtige Stelle:</p>
<p>cout &lt;&lt; &quot;Bitte gib drei Integer Werte ein: \n&quot;;<br />
int wert1 = 0;<br />
int wert2 = 0;<br />
int wert3 = 0;<br />
int count1 = 0;<br />
int count2 = 0;<br />
int count3 = 0;<br />
cin &gt;&gt; wert1 &gt;&gt; wert2 &gt;&gt; wert3;<br />
//Wert1<br />
if ((wert1 &lt; wert2) &amp;&amp; (wert1 &lt; wert3))<br />
count1 = wert1;<br />
if ((wert1 &lt; wert2) &amp;&amp; (wert1 &gt; wert3))<br />
count2 = wert1;<br />
if ((wert1 &gt; wert2) &amp;&amp; (wert1 &lt; wert3))<br />
count2 = wert1;<br />
if ((wert1 &gt; wert2) &amp;&amp; (wert1 &gt; wert3))<br />
count3 = wert1;<br />
cout &lt;&lt; &quot;\n1. &quot; &lt;&lt; count1;<br />
cout &lt;&lt; &quot;\n2. &quot; &lt;&lt; count2;<br />
cout &lt;&lt; &quot;\n3. &quot; &lt;&lt; count3;</p>
<p><strong>Kann man das eleganter lösen ??</strong><br />
Bei 3 Werten wird es ja schon unübersichtlich wie wird es dann erst mit 5 oder mehr Werten.<br />
Ich wollte es am Anfang eigentlich mit einer While Anweisung prüfen und abarbeiten lassen also in einer Schleife das funktioniert aber nicht da die Abhängigkeit dann immer nur von einem Wert betrachtet wird.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158760</guid><dc:creator><![CDATA[Rokko78]]></dc:creator><pubDate>Mon, 19 Dec 2011 14:39:42 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Mon, 19 Dec 2011 14:46:25 GMT]]></title><description><![CDATA[<p>z.B mit Bubblesort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158766</guid><dc:creator><![CDATA[Awebb]]></dc:creator><pubDate>Mon, 19 Dec 2011 14:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Mon, 19 Dec 2011 14:55:24 GMT]]></title><description><![CDATA[<p>Su brauchst Arrays bzw. <a href="http://www.cplusplus.com/reference/stl/vector/" rel="nofollow">std::vector</a> und Schleifen. Der einfachste Algorithmus düfte hier <a href="http://de.wikipedia.org/wiki/Selectionsort" rel="nofollow">Selection Sort</a> sein. Oder Du nimmst gleich einen fertigen Sortieralgorithmus wie z.B. <a href="http://www.cplusplus.com/reference/algorithm/sort/" rel="nofollow">std::sort</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158767</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 19 Dec 2011 14:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Mon, 19 Dec 2011 14:59:50 GMT]]></title><description><![CDATA[<p>Awebb schrieb:</p>
<blockquote>
<p>z.B mit Bubblesort</p>
</blockquote>
<p>Das ist sicherlich die uneleganteste Möglichkeit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> .</p>
<p>Allgemein gibt es schon std::sort in der Standardbibliothek. Wenn du wirklich nur drei Werte hast und du sicher bist, dass es immer nur drei Werte sein können, dann kannst du dir auch überlegen, wie man diese mit ifs und swaps optimal sortieren kann. Das haben aber schon andere Leute gemacht:<br />
<a href="http://en.wikipedia.org/wiki/Sorting_network" rel="nofollow">http://en.wikipedia.org/wiki/Sorting_network</a></p>
<p>Für n=3 kann man dann finden:</p>
<pre><code>o-----^--^--o
      |  |   
o--^--|--v--o
   |  |      
o--v--v-----o

There are 3 comparators in this network,
grouped into 3 parallel operations.

&lsqb;&lsqb;1,2&rsqb;&rsqb;
&lsqb;&lsqb;0,2&rsqb;&rsqb;
&lsqb;&lsqb;0,1&rsqb;&rsqb;

This is graphed in 3 columns.
</code></pre>
<p>Das heißt in Code (ungetestet):</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt; // für swap, schreib dir zur Not ein eigenes swap, wenn du die Standardbibliothek nicht nutzen willst

// ...

 if (wert2 &lt; wert1) swap(wert1, wert2);
 if (wert2 &lt; wert0) swap(wert0, wert2);
 if (wert1 &lt; wert0) swap(wert0, wert1);
</code></pre>
<p>Die Werte sind nun mit minimalem Aufwand garantiert sortiert. Für 5 ist das auch noch ok, vielleicht sogar bis in niedrige zweistellige Bereiche (man kann sich den Code auch automatisch erzeugen lassen). Für größere Zahlenmengen oder Zahlenmengen unbekannter Größe solltest du aber wirklich die Standardbibliothek benutzen oder, als Masochist, deine eigene Sortierfunktion schreiben (aber nicht Bubblesort! Quicksort oder Mergesort sind auch nicht schwer, dafür aber effizient!). Für beides musst du deine wert1, wert2, wert3,... aufgeben und die Werte irgendwie adressierbar speichern, z.B. in einem vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158772</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Dec 2011 14:59:50 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Mon, 19 Dec 2011 15:44:46 GMT]]></title><description><![CDATA[<blockquote>
<p>There are 3 comparators in this network,<br />
grouped into 3 parallel operations.</p>
</blockquote>
<p>Nein, es sind 3 sequentielle Operationen.</p>
<p>Zusatz, fuer Inputs bis 24:<br />
Slides: <a href="http://www.genetic-programming.org/hc2011/03-Valsalam/Valsalam-Slides.pdf" rel="nofollow">http://www.genetic-programming.org/hc2011/03-Valsalam/Valsalam-Slides.pdf</a><br />
Arbeit: <a href="http://www.genetic-programming.org/hc2011/03-Valsalam/Valsalam-Paper.pdf" rel="nofollow">http://www.genetic-programming.org/hc2011/03-Valsalam/Valsalam-Paper.pdf</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158796</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 19 Dec 2011 15:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Mon, 19 Dec 2011 16:00:46 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>There are 3 comparators in this network,<br />
grouped into 3 parallel operations.</p>
</blockquote>
<p>Nein, es sind 3 sequentielle Operationen.</p>
</blockquote>
<p>Das ist schon so gemeint. Das sind drei sequentielle Blöcke mit jeweils einer &quot;parallelen&quot; Operation. Bei n=4 stünde auf der Seite wo ich das her habe:</p>
<pre><code>o--^--^--------o
   |  |         
o--v--|--^--^--o
      |  |  |   
o--^--v--|--v--o
   |     |      
o--v-----v-----o

There are 5 comparators in this network,
grouped into 3 parallel operations.

&lsqb;&lsqb;0,1],[2,3&rsqb;&rsqb;
&lsqb;&lsqb;0,2],[1,3&rsqb;&rsqb;
&lsqb;&lsqb;1,2&rsqb;&rsqb;

This is graphed in 4 columns.
</code></pre>
<p>Jetzt klar?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158814</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Dec 2011 16:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Tue, 20 Dec 2011 10:06:05 GMT]]></title><description><![CDATA[<p>Hmm, ich weiss nicht. Also parallel kann man nur die Vergleiche in einer Zeile ausfuehren. Aber vielleicht kannst du ja die Seite nennen? Ok, parallel bezieht sich wahrscheinlich nicht auf die Ausfuehrung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2159107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2159107</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 20 Dec 2011 10:06:05 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Tue, 20 Dec 2011 09:18:34 GMT]]></title><description><![CDATA[<p>Ihr wollt jetzt für drei Zahlen Threads zum sortieren anlegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2159120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2159120</guid><dc:creator><![CDATA[PsychoRainbow]]></dc:creator><pubDate>Tue, 20 Dec 2011 09:18:34 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Tue, 20 Dec 2011 10:04:01 GMT]]></title><description><![CDATA[<p>Nein! Liess doch den obigen Wikipedia-Link.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2159136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2159136</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 20 Dec 2011 10:04:01 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Tue, 20 Dec 2011 10:16:55 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Hmm, ich weiss nicht. Also parallel kann man nur die Vergleiche in einer Zeile ausfuehren. Aber vielleicht kannst du ja die Seite nennen? Ok, parallel bezieht sich wahrscheinlich nicht auf die Ausfuehrung.</p>
</blockquote>
<p>Hier:<br />
<a href="http://pages.ripco.net/~jgamble/nw.html" rel="nofollow">http://pages.ripco.net/~jgamble/nw.html</a></p>
<p>Das ist praktisch so gemeint, wieviele Schritte man mindestens braucht, selbst wenn man perfekt parallelisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2159144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2159144</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 20 Dec 2011 10:16:55 GMT</pubDate></item><item><title><![CDATA[Reply to Integer Werte nach Wertigkeit sortieren on Tue, 20 Dec 2011 18:29:37 GMT]]></title><description><![CDATA[<p>swap hört sich interessant an. Werde ich mal versuchen.</p>
<p>Danke !!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2159405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2159405</guid><dc:creator><![CDATA[Rokko78]]></dc:creator><pubDate>Tue, 20 Dec 2011 18:29:37 GMT</pubDate></item></channel></rss>