<?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[Array an Mergesort übergeben]]></title><description><![CDATA[<p>Guten Tag nochmal.</p>
<p>Ich habe folgendes Problem:</p>
<p>Wir mussten ein Programm schreiben, das Zahlen aus einer Textdatei einliest, und die an Mergesort übergibt.</p>
<p>Ich habe ziemlich viel Zeit damit verbracht, um zu verstehen, wie man ein dynamisches Array erzeugen kann. Nun ist es so - ich habe zwar ein dynamisches Array erzeugt, ich kann es aber nicht an Mergesort übergeben. Na ja, ich glaube das liegt an meinem Array, ich glaube, ich habe immer noch nicht die Struktur so richtig verstanden.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;cstddef&gt;
#include &lt;fstream&gt;
#include &lt;cstdlib&gt;
#include &lt;sstream&gt;
#include &lt;iterator&gt;
#include &lt;string&gt;
using namespace std;

void Merge (int *a, int Anfang, int Mitte, int Ende){

	int tmp[Ende - Anfang + 1], i = Anfang, j = Mitte+1;
		for (int k=0;k&lt;=Ende-Anfang;k++){
			if ( (i&lt;=Mitte) &amp;&amp; (( j&gt;Ende) || (a[i] &lt; a[j]))){
			tmp[k] = a[i];
			i++;
			}
			else{
			tmp[k]=a[j];
			j++;
			//cout&lt;&lt;a[i]&lt;&lt;&quot; &quot;&lt;&lt;a[j]&lt;&lt;endl;
			}
		}
		for(int k=0; k&lt;=Ende-Anfang;k++){
		a[Anfang+k] = tmp[k];

		}
		for(int b=0;b&lt;16;b++){
		cout&lt;&lt;a[b]&lt;&lt;&quot; &quot;;
		}
		cout&lt;&lt;endl;
}

void MergeSort(int* a, int Anfang, int Ende){
	if(Anfang &lt; Ende){
	int Mitte = (Anfang + Ende) / 2;

	MergeSort (a, Anfang, Mitte);
	//cout&lt;&lt;Anfang&lt;&lt;&quot;  &quot;&lt;&lt;Mitte&lt;&lt;&quot; &quot;&lt;&lt;Mitte+1&lt;&lt;&quot; &quot;&lt;&lt;Ende&lt;&lt;endl;
	MergeSort (a, Mitte + 1, Ende);
	Merge (a, Anfang, Mitte, Ende);
	}
}

int main () { 
  string line; 
  vector&lt;int&gt; dynArr;
  ifstream datei;
  datei.open(&quot;MergeZahlen.txt&quot;, ios::binary|ios::in);
  if (datei) 
  { 
	istream_iterator&lt;int&gt;iit(datei);
	copy(iit,istream_iterator&lt;int&gt;(),back_inserter(dynArr));

        datei.close(); 

	copy(dynArr.begin(),dynArr.end(),ostream_iterator&lt;int&gt;(cout,&quot; &quot;));
	cout&lt;&lt;endl;
  } 

  MergeSort(*dynArr, 0, 15); //Meine Problemzone :D
}
</code></pre>
<p>Ich glaube, ich will jetzt sowas wie eine Beruhigung hören, vonwegen: &quot;Nein, Du musst nicht mit Templates und Vektorklasse arbeiten, es geht auch anders, Du musst nur dein Code hier und da ein bisschen ändern&quot; <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>Ich stehe einfach gerade ein bisschen unter Zeitdruck, ich glaube nicht, dass ich es schaffe, in zwei Tagen Templates und Vektorklassen zu verstehen (allerdings verspreche ich, dass wenn ich mein nächstes Problem poste, dass ich mit diesen beiden Begriffen halbwegs umgehen kann <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>Na ja, wenn es aber nicht anders geht, ist mir die Wahrheit auch wichtig. <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>Also, könnt ich mir etwas empfehlen, oder darf ich mich schon an meine Begrifflichkeit heransetzten?</p>
<p>Bin für alle Vorschläge dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>PS. Liegt es auch unter anderem daran, dass ich an Mergesort keine Indizes übergebe? Könnte ich mir evtl. damit verhelfen, dass ich an der Funktion Mergesort etwas ändere? Oder schreibe ich hier gerade Schwachsinn?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255371/array-an-mergesort-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 02:12:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255371.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 29 Nov 2009 22:22:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array an Mergesort übergeben on Sun, 29 Nov 2009 22:22:55 GMT]]></title><description><![CDATA[<p>Guten Tag nochmal.</p>
<p>Ich habe folgendes Problem:</p>
<p>Wir mussten ein Programm schreiben, das Zahlen aus einer Textdatei einliest, und die an Mergesort übergibt.</p>
<p>Ich habe ziemlich viel Zeit damit verbracht, um zu verstehen, wie man ein dynamisches Array erzeugen kann. Nun ist es so - ich habe zwar ein dynamisches Array erzeugt, ich kann es aber nicht an Mergesort übergeben. Na ja, ich glaube das liegt an meinem Array, ich glaube, ich habe immer noch nicht die Struktur so richtig verstanden.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;cstddef&gt;
#include &lt;fstream&gt;
#include &lt;cstdlib&gt;
#include &lt;sstream&gt;
#include &lt;iterator&gt;
#include &lt;string&gt;
using namespace std;

void Merge (int *a, int Anfang, int Mitte, int Ende){

	int tmp[Ende - Anfang + 1], i = Anfang, j = Mitte+1;
		for (int k=0;k&lt;=Ende-Anfang;k++){
			if ( (i&lt;=Mitte) &amp;&amp; (( j&gt;Ende) || (a[i] &lt; a[j]))){
			tmp[k] = a[i];
			i++;
			}
			else{
			tmp[k]=a[j];
			j++;
			//cout&lt;&lt;a[i]&lt;&lt;&quot; &quot;&lt;&lt;a[j]&lt;&lt;endl;
			}
		}
		for(int k=0; k&lt;=Ende-Anfang;k++){
		a[Anfang+k] = tmp[k];

		}
		for(int b=0;b&lt;16;b++){
		cout&lt;&lt;a[b]&lt;&lt;&quot; &quot;;
		}
		cout&lt;&lt;endl;
}

void MergeSort(int* a, int Anfang, int Ende){
	if(Anfang &lt; Ende){
	int Mitte = (Anfang + Ende) / 2;

	MergeSort (a, Anfang, Mitte);
	//cout&lt;&lt;Anfang&lt;&lt;&quot;  &quot;&lt;&lt;Mitte&lt;&lt;&quot; &quot;&lt;&lt;Mitte+1&lt;&lt;&quot; &quot;&lt;&lt;Ende&lt;&lt;endl;
	MergeSort (a, Mitte + 1, Ende);
	Merge (a, Anfang, Mitte, Ende);
	}
}

int main () { 
  string line; 
  vector&lt;int&gt; dynArr;
  ifstream datei;
  datei.open(&quot;MergeZahlen.txt&quot;, ios::binary|ios::in);
  if (datei) 
  { 
	istream_iterator&lt;int&gt;iit(datei);
	copy(iit,istream_iterator&lt;int&gt;(),back_inserter(dynArr));

        datei.close(); 

	copy(dynArr.begin(),dynArr.end(),ostream_iterator&lt;int&gt;(cout,&quot; &quot;));
	cout&lt;&lt;endl;
  } 

  MergeSort(*dynArr, 0, 15); //Meine Problemzone :D
}
</code></pre>
<p>Ich glaube, ich will jetzt sowas wie eine Beruhigung hören, vonwegen: &quot;Nein, Du musst nicht mit Templates und Vektorklasse arbeiten, es geht auch anders, Du musst nur dein Code hier und da ein bisschen ändern&quot; <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>Ich stehe einfach gerade ein bisschen unter Zeitdruck, ich glaube nicht, dass ich es schaffe, in zwei Tagen Templates und Vektorklassen zu verstehen (allerdings verspreche ich, dass wenn ich mein nächstes Problem poste, dass ich mit diesen beiden Begriffen halbwegs umgehen kann <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>Na ja, wenn es aber nicht anders geht, ist mir die Wahrheit auch wichtig. <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>Also, könnt ich mir etwas empfehlen, oder darf ich mich schon an meine Begrifflichkeit heransetzten?</p>
<p>Bin für alle Vorschläge dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>PS. Liegt es auch unter anderem daran, dass ich an Mergesort keine Indizes übergebe? Könnte ich mir evtl. damit verhelfen, dass ich an der Funktion Mergesort etwas ändere? Oder schreibe ich hier gerade Schwachsinn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815200</guid><dc:creator><![CDATA[babadura]]></dc:creator><pubDate>Sun, 29 Nov 2009 22:22:55 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Mergesort übergeben on Sun, 29 Nov 2009 22:44:49 GMT]]></title><description><![CDATA[<p>Bitte verwende nächstes Mal die C++ Code Tags...</p>
<p>Was für Fehler treten denn auf ?</p>
<pre><code class="language-cpp">vector&lt;int&gt; a;
int* a2 = &amp;a[0];
</code></pre>
<p>So konvertierst du den vector zu einem int-Pointer ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815210</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Sun, 29 Nov 2009 22:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to Array an Mergesort übergeben on Sun, 29 Nov 2009 22:54:18 GMT]]></title><description><![CDATA[<p>Es hat funktionier!!!!!<br />
Super, danke für die Hilfe!!!</p>
<p>Schade (oder Gut), dass der Ratgeber nicht vor mir ist, Du hättest bestimmt einen dicken Kuss von mir gekriegt! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1815214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815214</guid><dc:creator><![CDATA[babadura]]></dc:creator><pubDate>Sun, 29 Nov 2009 22:54:18 GMT</pubDate></item></channel></rss>