<?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[2D Array sortieren]]></title><description><![CDATA[<p>Moinsen,<br />
hab eine kleine Prüfungsleistung zu erledigen und stecke etwas fest.<br />
Aufgabenstellung:<br />
Ich soll einen Sortieralgorithmus für ein beliebig großes zweidimensionales Array entwickeln. Die einzelnen Elemente sollen der Grösse nach sortiert werden.</p>
<p>Z.B. so:</p>
<p>cin&gt;&gt;m; // z.B. 4<br />
cin&gt;&gt;n; // z.B. 3</p>
<p>double werte[m][n];</p>
<p>Die fertige Sortierung sollte dann etwa wie folgt aussehen:</p>
<p>1 2 3<br />
4 5 6<br />
7 8 9<br />
10 11 12</p>
<p>Oder vielleicht so:</p>
<p>1 5 9<br />
2 6 10<br />
3 7 11<br />
4 8 12</p>
<p>Welche der beiden Varianten ich verwende ist nicht vorgegeben, also am besten die Einfachste <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>Nun zum Problem: Ein eindimensionales Array kann ich schon sortieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> , aber bei einem 2D ist mein Latein am Ende, da es sich hierbei ja sicherlich um mehrere verschachtelte for Schleifen handelt und da spielt mein beschränktes abstraktes Denkvermögen noch nicht mit.</p>
<p>Arbeite mit VC++ 6.0</p>
<p>Kann mir BITTE jemand auf die Sprünge helfen ????</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147600/2d-array-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 11:16:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147600.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 May 2006 13:41:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 13:41:24 GMT]]></title><description><![CDATA[<p>Moinsen,<br />
hab eine kleine Prüfungsleistung zu erledigen und stecke etwas fest.<br />
Aufgabenstellung:<br />
Ich soll einen Sortieralgorithmus für ein beliebig großes zweidimensionales Array entwickeln. Die einzelnen Elemente sollen der Grösse nach sortiert werden.</p>
<p>Z.B. so:</p>
<p>cin&gt;&gt;m; // z.B. 4<br />
cin&gt;&gt;n; // z.B. 3</p>
<p>double werte[m][n];</p>
<p>Die fertige Sortierung sollte dann etwa wie folgt aussehen:</p>
<p>1 2 3<br />
4 5 6<br />
7 8 9<br />
10 11 12</p>
<p>Oder vielleicht so:</p>
<p>1 5 9<br />
2 6 10<br />
3 7 11<br />
4 8 12</p>
<p>Welche der beiden Varianten ich verwende ist nicht vorgegeben, also am besten die Einfachste <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>Nun zum Problem: Ein eindimensionales Array kann ich schon sortieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> , aber bei einem 2D ist mein Latein am Ende, da es sich hierbei ja sicherlich um mehrere verschachtelte for Schleifen handelt und da spielt mein beschränktes abstraktes Denkvermögen noch nicht mit.</p>
<p>Arbeite mit VC++ 6.0</p>
<p>Kann mir BITTE jemand auf die Sprünge helfen ????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060157</guid><dc:creator><![CDATA[yberion_2]]></dc:creator><pubDate>Thu, 18 May 2006 13:41:24 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 13:54:35 GMT]]></title><description><![CDATA[<p>Naja, weiß nicht, ob das am Thema vorbei geht. Aber sortier doch einfach ein 1D-Array und teile es dann auf ein 2D-Array auf:</p>
<pre><code class="language-cpp">// PSEUDO:

int m = 4;
int n = 3;

sortiere(1D-Array);

int counter = 0;

for(int i=0; i&lt;m; i++)
{
    for(int j=0; j&lt;n; j++)
    {
        2D-Array[i][j] = 1D-Array[counter];
        counter++;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1060172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060172</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Thu, 18 May 2006 13:54:35 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 14:19:35 GMT]]></title><description><![CDATA[<p>Die Idee hatte ich auch schon aber nach Rücksprache mit dem Prof ist mir das untersagt worden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060205</guid><dc:creator><![CDATA[yberion_2]]></dc:creator><pubDate>Thu, 18 May 2006 14:19:35 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 14:22:14 GMT]]></title><description><![CDATA[<p>Also mir fällt kein Algorithmus ein, mit dem man ein 2D-Array sortieren kann. Wär aber mal interessant, ob es sowas gibt.<br />
Wikipedia schweigt sich zu dem Thema auch aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060209</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Thu, 18 May 2006 14:22:14 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 14:35:04 GMT]]></title><description><![CDATA[<p>Trotzdem erstmal vielen Dank. Werde dann wohl noch einige Nächte mit dicken Augenringen am Laptop sitzen und rumtesten <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1060228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060228</guid><dc:creator><![CDATA[yberion_2]]></dc:creator><pubDate>Thu, 18 May 2006 14:35:04 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 14:44:44 GMT]]></title><description><![CDATA[<p>Frag dein Prof doch nochmal, ob er dir wenigstens einen Ansatz geben kann. Kann dich ja nicht einfach so ins kalte Wasser werfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060235</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Thu, 18 May 2006 14:44:44 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 15:09:52 GMT]]></title><description><![CDATA[<p>Oh doch, genau so ein A.... ist das</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060252</guid><dc:creator><![CDATA[yberion_2]]></dc:creator><pubDate>Thu, 18 May 2006 15:09:52 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 16:21:52 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=2822" rel="nofollow">SideWinder</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=13" rel="nofollow">DOS und Win32-Konsole</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060307</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 18 May 2006 16:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 16:43:42 GMT]]></title><description><![CDATA[<p>2D-Array als 1D-Array behandeln:</p>
<p>Array[i%m][i/m]</p>
<p>i würde dann von 0 bis n*m-1 laufen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060332</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Thu, 18 May 2006 16:43:42 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Thu, 18 May 2006 18:47:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;ctime&gt;

using namespace std;

void print_array2d( int **array, size_t rows, size_t cols );
void sort_array2d_horz( int **array, size_t rows, size_t cols );
void sort_array2d_vert( int **array, size_t rows, size_t cols );

int main( int argc, char *argv[] )
{
	size_t	cols	= 0;
	size_t	rows	= 0;
	int		max		= 0;

	srand( ( unsigned int ) time( 0 ) );

	cout &lt;&lt; &quot;columns: &quot;;
	cin  &gt;&gt; cols;
	cout &lt;&lt; &quot;rows:    &quot;;
	cin  &gt;&gt; rows;
	cout &lt;&lt; &quot;maximum: &quot;;
	cin  &gt;&gt; max;

	cout &lt;&lt; endl;

	if( !( rows &amp;&amp; cols ) ) {
		cout &lt;&lt; &quot;Number of columns and rows needs to be &gt; 0!&quot; &lt;&lt; endl;
		return -1;
	}

	max = ( max &lt; 0 ? -max : max ) + 1;

	int **array = new int*[rows];
	for( size_t i = 0; i &lt; rows; ++i )
		array[i] = new int[cols];

	for( size_t y = 0; y &lt; rows; ++y )
		for( size_t x = 0; x &lt; cols; ++x )
 			array[y][x] = rand() % max;

	cout &lt;&lt; &quot;Unsorted, random values:&quot; &lt;&lt; endl;
	print_array2d( array, rows, cols );

	sort_array2d_horz( array, rows, cols );

	cout &lt;&lt; endl &lt;&lt; &quot;horizontal sorted array:&quot; &lt;&lt; endl;
	print_array2d( array, rows, cols );

	sort_array2d_vert( array, rows, cols );

	cout &lt;&lt; endl &lt;&lt; &quot;vertical sorted array:&quot; &lt;&lt; endl;
	print_array2d( array, rows, cols );

    for( size_t i = 0; i &lt; rows; ++i )
		delete[] array[i];
	delete[] array;
	array = 0;

	return 0;
}

void print_array2d( int **array, size_t rows, size_t cols )
{
	for( size_t y = 0; y &lt; rows; ++y ) {
		for( size_t x = 0; x &lt; cols; ++x ) {
			cout.width( 4 );
			cout &lt;&lt; right &lt;&lt; array[y][x];
		}
		cout &lt;&lt; endl;
	}
}

void sort_array2d_horz( int **array, size_t rows, size_t cols )
{
	int tmp = 0;
	bool sorted = false;

	do {
		sorted = true;
		for( size_t y = 0; y &lt; rows; ++y ) {
			for( size_t x = 0; x &lt; cols; ++x ) {
				if( !( ( y == ( rows - 1 ) ) &amp;&amp; ( x == ( cols - 1 ) ) ) ) {
					if( x &lt; ( cols - 1 ) ) {
						if( array[y][x] &gt; array[y][x+1] ) {
							tmp = array[y][x];
							array[y][x] = array[y][x+1];
							array[y][x+1] = tmp;
							sorted = false;
						}
					} else {
						if( array[y][x] &gt; array[y+1][0] ) {
							tmp = array[y][x];
							array[y][x] = array[y+1][0];
							array[y+1][0] = tmp;
							sorted = false;
						}
					}
				}
			}
		}
	} while( !sorted );
}

void sort_array2d_vert( int **array, size_t rows, size_t cols )
{
	int tmp = 0;
	bool sorted = false;

	do {
		sorted = true;
		for( size_t x = 0; x &lt; cols; ++x ) {
			for( size_t y = 0; y &lt; rows; ++y ) {
				if( !( ( y == ( rows - 1 ) ) &amp;&amp; ( x == ( cols - 1 ) ) ) ) {
					if( y &lt; ( rows - 1 ) ) {
						if( array[y][x] &gt; array[y+1][x] ) {
							tmp = array[y][x];
							array[y][x] = array[y+1][x];
							array[y+1][x] = tmp;
							sorted = false;
						}
					} else {
						if( array[y][x] &gt; array[0][x+1] ) {
							tmp = array[y][x];
							array[y][x] = array[0][x+1];
							array[0][x+1] = tmp;
							sorted = false;
						}
					}
				}
			}
		}
	} while( !sorted );
}
</code></pre>
<p>Ist zwar nur ein dämlicher Bubblesort, aber bei solch einer Aufgabenstellung frag' ich mich sowieso, ob euer Professor ganz da ist.</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060431</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 18 May 2006 18:47:35 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Fri, 19 May 2006 15:44:12 GMT]]></title><description><![CDATA[<p>Wow ist das cool, zwar ein riesen Aufwand aber hauptsache es funzt.<br />
DANKE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061096</guid><dc:creator><![CDATA[yberion_2]]></dc:creator><pubDate>Fri, 19 May 2006 15:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Array sortieren on Fri, 19 May 2006 19:02:50 GMT]]></title><description><![CDATA[<p>Na besten Dank für deinen Dank, aber WTF ist daran kompliziert?<br />
Simpler gehts nimmer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> .</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061215</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Fri, 19 May 2006 19:02:50 GMT</pubDate></item></channel></rss>