<?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[c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort]]></title><description><![CDATA[<p>Guten Tag,<br />
ich habe ein Programm geschrieben, dass ein Array nach InsertionSort sortiert.<br />
in der Aufgabe steht aber auch, dass man die anzahl der Vergleiche sowie der Vertauschungen ermitteln soll.</p>
<p>Ich habe verschiedene Überlegeungen angestellt, und auch einfach mal versucht die Zähler einzusetzten, aber ich konnte bisher nur die Anzahl der Vertauschungen ermitteln.</p>
<p>Wo und Wie muss ich den Zähler einbauen, damit er die Anzahl der Vergleiche ermittelt?</p>
<p>Hier der relevante Quellcode:</p>
<pre><code class="language-cpp">void insertionsort(int *sortier_array, int a) 
	{
		int index,index_klein,wert_klein;

		for(index=1; index&lt;a; index++) 				// Funktion, mit der das gesamte Array einmal von links nach rechts durchlaufen wird 
			{
			  wert_klein=sortier_array[index]; 	    // in dem Sortier-Array wird der erste wert als sortiert angenommen, und dessen Position im Array als Ausgangspunkt angenommen

				for( index_klein=index; 
				sortier_array[index_klein-1] &gt; wert_klein&amp;&amp;index_klein &gt; 0; 
				index_klein-- )

						{ //ist der vorhergegangene Wert im Array kleiner
						sortier_array[index_klein] = sortier_array[index_klein-1]; //wird er an den Anfang gesetzt.
						z++; //Zähler für die Anzahl der Vertauschungen
						}

			  sortier_array[index_klein]=wert_klein; //Die Position wird aktualisiert
			}
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/201629/c-anzahl-zähler-vertauschungen-vergleiche-insertionsort</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 11:04:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201629.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Jan 2008 11:18:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Wed, 02 Jan 2008 11:18:51 GMT]]></title><description><![CDATA[<p>Guten Tag,<br />
ich habe ein Programm geschrieben, dass ein Array nach InsertionSort sortiert.<br />
in der Aufgabe steht aber auch, dass man die anzahl der Vergleiche sowie der Vertauschungen ermitteln soll.</p>
<p>Ich habe verschiedene Überlegeungen angestellt, und auch einfach mal versucht die Zähler einzusetzten, aber ich konnte bisher nur die Anzahl der Vertauschungen ermitteln.</p>
<p>Wo und Wie muss ich den Zähler einbauen, damit er die Anzahl der Vergleiche ermittelt?</p>
<p>Hier der relevante Quellcode:</p>
<pre><code class="language-cpp">void insertionsort(int *sortier_array, int a) 
	{
		int index,index_klein,wert_klein;

		for(index=1; index&lt;a; index++) 				// Funktion, mit der das gesamte Array einmal von links nach rechts durchlaufen wird 
			{
			  wert_klein=sortier_array[index]; 	    // in dem Sortier-Array wird der erste wert als sortiert angenommen, und dessen Position im Array als Ausgangspunkt angenommen

				for( index_klein=index; 
				sortier_array[index_klein-1] &gt; wert_klein&amp;&amp;index_klein &gt; 0; 
				index_klein-- )

						{ //ist der vorhergegangene Wert im Array kleiner
						sortier_array[index_klein] = sortier_array[index_klein-1]; //wird er an den Anfang gesetzt.
						z++; //Zähler für die Anzahl der Vertauschungen
						}

			  sortier_array[index_klein]=wert_klein; //Die Position wird aktualisiert
			}
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1429182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429182</guid><dc:creator><![CDATA[enno]]></dc:creator><pubDate>Wed, 02 Jan 2008 11:18:51 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Wed, 02 Jan 2008 11:34:30 GMT]]></title><description><![CDATA[<p>Das hängt schwer davon ab, wo du z deklarierst (was du gar nicht tust).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429195</guid><dc:creator><![CDATA[cheopz]]></dc:creator><pubDate>Wed, 02 Jan 2008 11:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Wed, 02 Jan 2008 11:38:21 GMT]]></title><description><![CDATA[<p>z ist als globale variable deklariert.</p>
<p>ich habe den restlichen quellcode wegelassen, um das Forum nicht zu überschwemmen <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>mir fällt gerade auf: Zähle ich nicht doch die Anzahl der Vergleiche gerade?</p>
<p>oO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429201</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Wed, 02 Jan 2008 11:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Wed, 02 Jan 2008 11:39:57 GMT]]></title><description><![CDATA[<blockquote>
<p>mir fällt gerade auf: Zähle ich nicht doch die Anzahl der Vergleiche gerade?</p>
</blockquote>
<p><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/1429202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429202</guid><dc:creator><![CDATA[cheopz]]></dc:creator><pubDate>Wed, 02 Jan 2008 11:39:57 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Wed, 02 Jan 2008 11:43:22 GMT]]></title><description><![CDATA[<p>also ich habe es nochmal überprüft, es ist doch wie ursprünglich angenommen die Anzahl der Vertauschungen (die ja beim average case 0, und beim worst case ~ n²/2 ist)</p>
<p>Also zur ausgangsfrage: wie kann ich den zähler für die vergleiche einbauen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429203</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Wed, 02 Jan 2008 11:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Wed, 02 Jan 2008 12:42:36 GMT]]></title><description><![CDATA[<p>Du vergleichst in Zeile 10 (oder willst die Vergleiche in Zeile 5 auch dazuzählen? Ich denke nein). Also willst du zählen, wie oft du an Zeile 10 vorbeikommst.</p>
<p>Oder hab ich da was falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429252</guid><dc:creator><![CDATA[cheopz]]></dc:creator><pubDate>Wed, 02 Jan 2008 12:42:36 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Wed, 02 Jan 2008 14:48:18 GMT]]></title><description><![CDATA[<p>zeile 5 dient nur dazu, das array einmal durchzulaufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429355</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Wed, 02 Jan 2008 14:48:18 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Thu, 03 Jan 2008 14:08:20 GMT]]></title><description><![CDATA[<p>hat keiner eine idee? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1429982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429982</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 03 Jan 2008 14:08:20 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Thu, 03 Jan 2008 15:52:26 GMT]]></title><description><![CDATA[<p>Die Anzahl der Vergleiche und die der Vertauschungen ist bei deinem Sortieralgorithmus gleich, d.h. die Variable z gilt für beide.</p>
<p>Normalerweise unterscheidet man anhand folgender Sortiermethode (z.B. bei Bubble- oder Quicksort):</p>
<pre><code class="language-cpp">if(array[x] &gt; array[y]) // Anzahl Vergleiche
{
  std::swap(array[x], array[y]); // Anzahl Vertauschungen
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1430076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430076</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 03 Jan 2008 15:52:26 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anzahl Zähler Vertauschungen&#x2F;Vergleiche InsertionSort on Sat, 05 Jan 2008 17:02:46 GMT]]></title><description><![CDATA[<p>Hallo,<br />
die Aussage stimmt nicht.<br />
Als beispiel: Best Case, zahlen 1,2,3:<br />
anzahl der vertauschungen wäre 0, aber 2 vergleiche.<br />
ich habe jetzt das problem auf folgende art gelöst:</p>
<pre><code>for(index=1; index&lt;a; index++) 				// Funktion, mit der das gesamte Array einmal von links nach rechts durchlaufen wird 
			{
			  wert_klein=sortier_array[index]; 	    // in dem Sortier-Array wird der erste wert als sortiert angenommen, und dessen Position im Array als Ausgangspunkt angenommen

					[b]if(sortier_array[index_klein-1] &lt; wert_klein&amp;&amp;index_klein &gt; 0)
						{p++;};[/b]
				for( index_klein=index; 
				sortier_array[index_klein-1] &gt; wert_klein&amp;&amp;index_klein &gt; 0; 
				index_klein--)

						{ //ist der vorhergegangene Wert im Array kleiner
						sortier_array[index_klein] = sortier_array[index_klein-1]; //wird er an den Anfang gesetzt.
						z++; //Zähler für die Anzahl der Vertauschungen
						p++;
						}

			  sortier_array[index_klein]=wert_klein; //Die Position wird aktualisiert
			}
</code></pre>
<p>Vielen Dank für eure Ideen <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/1431270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431270</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Sat, 05 Jan 2008 17:02:46 GMT</pubDate></item></channel></rss>