<?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[Sortier Algorithmus]]></title><description><![CDATA[<p>Hi<br />
ich nutze einen QuickSort Algorithmus um die Werte in einem Array zu sortieren.<br />
Nun habe ich das Problem das er wenn ich ihn auf eine Spalte anwende &quot;das Array zerstört&quot; also z.B. er sortiert Zelle[1][2] auf [1][5] ...</p>
<p>dadurch passen aber die entsprechenden werte nicht mehr zusammen da zwar die eine Spalte sortiert ist aber nicht die tabelle...</p>
<p>ich möchte das die &quot;ganze&quot; Tabelle entsprechend der einen Spalte sortiert wird und nicht nur die eine spalte, ich finde aber leider kein schönes tutorial wo beschrieben steht wie geht...</p>
<p>hier mal mein beispiel:<br />
(c++11)</p>
<p>&lt;code&gt;</p>
<p>#include &lt;string&gt;<br />
#include &lt;iterator&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;algorithm&gt;<br />
#include &lt;array&gt;</p>
<p>void quickSort(int array[], int min, int max)<br />
{<br />
int i = min, j = max;<br />
int tmp;<br />
int pivot = array[((min + max) / 2)];</p>
<p>while (i &lt;= j)<br />
{<br />
while (array[i] &lt; pivot)<br />
{<br />
i++;<br />
}</p>
<p>while (array[j] &gt; pivot)<br />
{<br />
j--;<br />
}</p>
<p>if (i &lt;= j)<br />
{<br />
tmp = array[i];<br />
array[i] = array[j];<br />
array[j] = tmp;<br />
i++;<br />
j--;<br />
}<br />
}</p>
<p>if (min &lt; j)<br />
{<br />
quickSort(array, min, j);<br />
}<br />
if (i&lt; max)<br />
{<br />
quickSort(array, i, max);<br />
}<br />
}</p>
<p>int main()<br />
{<br />
int paket_info[3][12]= {{ 424,290,295,129,176,131,121,934,385,323,287,350 },<br />
{ 1,1,2,1,3,2,1,1,1,3,2,2 },<br />
{ 8,5,9,1,2,2,4,8,5,7,4,5 }};</p>
<p>int max=sizeof(paket_info[2])/sizeof(int);</p>
<p>int x,y;<br />
x=2;</p>
<p>std::cout &lt;&lt; &quot;Ausgangswerte:(Spalte3) &quot; &lt;&lt; std::endl;</p>
<p>for(int i=0;i&lt;12;i++)<br />
{<br />
std::cout&lt;&lt;paket_info[2][i]&lt;&lt;&quot; &quot; ;<br />
}<br />
std::cout &lt;&lt; std::endl;<br />
std::cout &lt;&lt; &quot;-----------------&quot; &lt;&lt; std::endl;</p>
<p>quickSort(paket_info[2], 0, max);</p>
<p>for(y=0;y&lt;12;y++)<br />
{<br />
for(x=0;x&lt;3;x++)<br />
{<br />
std::cout &lt;&lt; paket_info[x][y]&lt;&lt;&quot; ; &quot;;<br />
}<br />
std::cout &lt;&lt; std::endl;<br />
}<br />
}</p>
<p>&lt;/code&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329164/sortier-algorithmus</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 01:12:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329164.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Nov 2014 07:32:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 07:32:17 GMT]]></title><description><![CDATA[<p>Hi<br />
ich nutze einen QuickSort Algorithmus um die Werte in einem Array zu sortieren.<br />
Nun habe ich das Problem das er wenn ich ihn auf eine Spalte anwende &quot;das Array zerstört&quot; also z.B. er sortiert Zelle[1][2] auf [1][5] ...</p>
<p>dadurch passen aber die entsprechenden werte nicht mehr zusammen da zwar die eine Spalte sortiert ist aber nicht die tabelle...</p>
<p>ich möchte das die &quot;ganze&quot; Tabelle entsprechend der einen Spalte sortiert wird und nicht nur die eine spalte, ich finde aber leider kein schönes tutorial wo beschrieben steht wie geht...</p>
<p>hier mal mein beispiel:<br />
(c++11)</p>
<p>&lt;code&gt;</p>
<p>#include &lt;string&gt;<br />
#include &lt;iterator&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;algorithm&gt;<br />
#include &lt;array&gt;</p>
<p>void quickSort(int array[], int min, int max)<br />
{<br />
int i = min, j = max;<br />
int tmp;<br />
int pivot = array[((min + max) / 2)];</p>
<p>while (i &lt;= j)<br />
{<br />
while (array[i] &lt; pivot)<br />
{<br />
i++;<br />
}</p>
<p>while (array[j] &gt; pivot)<br />
{<br />
j--;<br />
}</p>
<p>if (i &lt;= j)<br />
{<br />
tmp = array[i];<br />
array[i] = array[j];<br />
array[j] = tmp;<br />
i++;<br />
j--;<br />
}<br />
}</p>
<p>if (min &lt; j)<br />
{<br />
quickSort(array, min, j);<br />
}<br />
if (i&lt; max)<br />
{<br />
quickSort(array, i, max);<br />
}<br />
}</p>
<p>int main()<br />
{<br />
int paket_info[3][12]= {{ 424,290,295,129,176,131,121,934,385,323,287,350 },<br />
{ 1,1,2,1,3,2,1,1,1,3,2,2 },<br />
{ 8,5,9,1,2,2,4,8,5,7,4,5 }};</p>
<p>int max=sizeof(paket_info[2])/sizeof(int);</p>
<p>int x,y;<br />
x=2;</p>
<p>std::cout &lt;&lt; &quot;Ausgangswerte:(Spalte3) &quot; &lt;&lt; std::endl;</p>
<p>for(int i=0;i&lt;12;i++)<br />
{<br />
std::cout&lt;&lt;paket_info[2][i]&lt;&lt;&quot; &quot; ;<br />
}<br />
std::cout &lt;&lt; std::endl;<br />
std::cout &lt;&lt; &quot;-----------------&quot; &lt;&lt; std::endl;</p>
<p>quickSort(paket_info[2], 0, max);</p>
<p>for(y=0;y&lt;12;y++)<br />
{<br />
for(x=0;x&lt;3;x++)<br />
{<br />
std::cout &lt;&lt; paket_info[x][y]&lt;&lt;&quot; ; &quot;;<br />
}<br />
std::cout &lt;&lt; std::endl;<br />
}<br />
}</p>
<p>&lt;/code&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426935</guid><dc:creator><![CDATA[MfG]]></dc:creator><pubDate>Tue, 11 Nov 2014 07:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 07:33:25 GMT]]></title><description><![CDATA[<p>sry hab unabsichtlich die falschen codetags... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code>#include &lt;string&gt;
#include &lt;iterator&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;array&gt;

void quickSort(int array[], int min, int max)
 {
	int i = min, j = max;
	int tmp;
	int pivot = array[((min + max) / 2)];

	while (i &lt;= j)
	{
		while (array[i] &lt; pivot)
		{
			i++;
		}

		while (array[j] &gt; pivot)
		{
			j--;
		}

		if (i &lt;= j)
		{
			tmp = array[i];
			array[i] = array[j];
			array[j] = tmp;
			i++;
			j--;
		}
	}

	if (min &lt; j)
	{
		quickSort(array, min, j);
	}
	if (i&lt; max)
	{
		quickSort(array, i, max);
	}
}

int main()
{
	int paket_info[3][12]= {{ 424,290,295,129,176,131,121,934,385,323,287,350 },
							{ 1,1,2,1,3,2,1,1,1,3,2,2 },
							{ 8,5,9,1,2,2,4,8,5,7,4,5 }};

	int max=sizeof(paket_info[2])/sizeof(int);

    int x,y;
    x=2;

    std::cout &lt;&lt; &quot;Ausgangswerte:(Spalte3) &quot; &lt;&lt; std::endl;

	for(int i=0;i&lt;12;i++)
	{
		std::cout&lt;&lt;paket_info[2][i]&lt;&lt;&quot; &quot; ;
	}
	std::cout &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;-----------------&quot; &lt;&lt; std::endl;

	quickSort(paket_info[2], 0, max);

	for(y=0;y&lt;12;y++)
	{
		for(x=0;x&lt;3;x++)
		{
			std::cout &lt;&lt; paket_info[x][y]&lt;&lt;&quot; ; &quot;;
		}
		std::cout &lt;&lt; std::endl;
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2426936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426936</guid><dc:creator><![CDATA[MfG]]></dc:creator><pubDate>Tue, 11 Nov 2014 07:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 07:46:27 GMT]]></title><description><![CDATA[<p>Dann implementiere selber einen Sortieralgo, den Du auch verstehst. Den kannste ganz leicht anpassen, sodaß er ganze Zeilen anhand eines Attributs sortiert.<br />
Und dann kannste das aus einem C-Tut gecopypastete Quicksort auch anpassen.</p>
<p>Und das ist wohl die gemeine Zeile im Code:</p>
<pre><code>void void quickSort(int array[3][], int min, int max)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2426937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426937</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 11 Nov 2014 07:46:27 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 07:49:14 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Dann implementiere selber einen Sortieralgo, den Du auch verstehst. Den kannste ganz leicht anpassen, sodaß er ganze Zeilen anhand eines Attributs sortiert.<br />
Und dann kannste das aus einem C-Tut gecopypastete Quicksort auch anpassen.</p>
<p>Und das ist wohl die gemeine Zeile im Code:</p>
<pre><code>void void quickSort(int array[3][], int min, int max)
</code></pre>
</blockquote>
<p>jop bin gerade am &quot;verstehen&quot; des Sortier Algorithmus hatte mit so etwas vorher noch nix zutun ...<br />
bin nur nicht weiter gekommen weil ich das anders versucht hatte... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>vielen dank ich versuchs gleich mal... <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/2426938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426938</guid><dc:creator><![CDATA[MfG]]></dc:creator><pubDate>Tue, 11 Nov 2014 07:49:14 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 07:54:14 GMT]]></title><description><![CDATA[<p>ich habe das jetzt angepasst, aber jetzt sortiert er nicht mehr, wieso das?<br />
was hab ich falsch gemacht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<pre><code>void quickSort(int array[3][12], int min, int max)
 {
	int i = min, j = max;
	int tmp;
	int pivot = array[3][((min + max) / 2)];

	while (i &lt;= j)
	{
		while (array[3][i] &lt; pivot)
		{
			i++;
		}

		while (array[3][j] &gt; pivot)
		{
			j--;
		}

		if (i &lt;= j)
		{
			tmp = array[3][i];
			array[3][i] = array[3][j];
			array[3][j] = tmp;
			i++;
			j--;
		}
	}

	if (min &lt; j)
	{
		quickSort(array, min, j);
	}
	if (i&lt; max)
	{
		quickSort(array, i, max);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2426939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426939</guid><dc:creator><![CDATA[MfG]]></dc:creator><pubDate>Tue, 11 Nov 2014 07:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 07:59:54 GMT]]></title><description><![CDATA[<p>[2]</p>
<p>und dann musste das tauschen zum großtausch machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426941</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 11 Nov 2014 07:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 08:08:58 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>[2]</p>
<p>und dann musste das tauschen zum großtausch machen.</p>
</blockquote>
<p>jo ich glaube ich habs gelöst... meinst du in etwa so?</p>
<p>ich hab jetzt einfach da wo er die werte &quot;tauscht&quot; die anderen werte des arrays mitgetauscht... eig total logisch wenn ich so darüber nachdenke... <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 />
viel dank so wie es aussieht passt das so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ...</p>
<pre><code>void quickSort(int array[3][12], int min, int max)
 {
	int i = min, j = max;
	int tmp;
	int tmp2;
	int tmp3;
	int pivot = array[2][((min + max) / 2)];

	while (i &lt;= j)
	{
		while (array[2][i] &lt; pivot)
		{
			i++;
		}

		while (array[2][j] &gt; pivot)
		{
			j--;
		}

		if (i &lt;= j)
		{
			tmp = array[2][i];
			array[2][i] = array[2][j];
			array[2][j] = tmp;

			tmp2 = array[1][i];
			array[1][i] = array[1][j];
			array[1][j] = tmp2;

			tmp3 = array[0][i];
			array[0][i] = array[0][j];
			array[0][j] = tmp3;

			i++;
			j--;

		}
	}

	if (min &lt; j)
	{
		quickSort(array, min, j);
	}
	if (i&lt; max)
	{
		quickSort(array, i, max);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2426945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426945</guid><dc:creator><![CDATA[MfG]]></dc:creator><pubDate>Tue, 11 Nov 2014 08:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 08:12:13 GMT]]></title><description><![CDATA[<p>problem gelöst... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
thema kann geschlossen werden ... <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>vielen dank für die 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="🙂"
    /> ...</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426947</guid><dc:creator><![CDATA[MfG]]></dc:creator><pubDate>Tue, 11 Nov 2014 08:12:13 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 08:47:38 GMT]]></title><description><![CDATA[<p>Witzig, hab gestern Abend genau das selbe gebraucht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Falls es dich noch interessiert:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;

int main() {
	using namespace std;
	vector&lt;vector&lt;int&gt;&gt; p = {{ 3, 4, 5 },
                            { 1, 2 },
                            { 8, 7, 8 }};

	auto p_cmp = [](vector&lt;int&gt; const &amp;lhs, vector&lt;int&gt; const &amp;rhs) { return lhs[0] &lt; rhs[0]; };
	sort(begin(p), end(p), p_cmp); // Sortiert nach der ersten Spalte

	for (auto const &amp;i : p) {
		for (auto const &amp;j : i) 
			cout &lt;&lt; j &lt;&lt; ' '; 
		cout &lt;&lt; '\n';
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2426950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426950</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Tue, 11 Nov 2014 08:47:38 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 08:58:35 GMT]]></title><description><![CDATA[<p>happystudent schrieb:</p>
<blockquote>
<p>Witzig, hab gestern Abend genau das selbe gebraucht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Falls es dich noch interessiert:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;

int main() {
	using namespace std;
	vector&lt;vector&lt;int&gt;&gt; p = {{ 3, 4, 5 },
                            { 1, 2 },
                            { 8, 7, 8 }};
	
	auto p_cmp = [](vector&lt;int&gt; const &amp;lhs, vector&lt;int&gt; const &amp;rhs) { return lhs[0] &lt; rhs[0]; };
	sort(begin(p), end(p), p_cmp); // Sortiert nach der ersten Spalte
	
	for (auto const &amp;i : p) {
		for (auto const &amp;j : i) 
			cout &lt;&lt; j &lt;&lt; ' '; 
		cout &lt;&lt; '\n';
	}
}
</code></pre>
</blockquote>
<p>jo doch <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="🙂"
    /> vielen dank ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426961</guid><dc:creator><![CDATA[MfG]]></dc:creator><pubDate>Tue, 11 Nov 2014 08:58:35 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 15:00:37 GMT]]></title><description><![CDATA[<p>Schoen zu sehen, dass immer mehr aktuelles C++11 eingesetzt wird, schliesslich ist der &quot;neue&quot; Standard ja schon wieder ein paar Jahre alt und der naechste steht vor der Tuer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427030</guid><dc:creator><![CDATA[qwertzuiop]]></dc:creator><pubDate>Tue, 11 Nov 2014 15:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to Sortier Algorithmus on Tue, 11 Nov 2014 16:10:00 GMT]]></title><description><![CDATA[<p>qwertzuiop schrieb:</p>
<blockquote>
<p>Schoen zu sehen, dass immer mehr aktuelles C++11 eingesetzt wird, schliesslich ist der &quot;neue&quot; Standard ja schon wieder ein paar Jahre alt und der naechste <s>steht vor der Tuer</s> ist auch schon seit Sommer draußen.</p>
</blockquote>
<p>FTFY.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427043</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Tue, 11 Nov 2014 16:10:00 GMT</pubDate></item></channel></rss>