<?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[[gelöst]Bubbelsort aufsteigend absteigend sortieren]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe habe 2 Methoden geschrieben, um eine verkettet Liste DESC bzw. ASC zu sortieren.<br />
Allerdings sortiert die ASC Methode DESC.<br />
Ich kann den Fehler leider nicht finden. Vllt. findet ihr den Fehler:</p>
<pre><code class="language-cpp">void liste_sortieren_desc()
	{	
		// Pruefen ob mehr als 1 Element vorhanden sind
		if ( size &lt; 2 ) return;

		struct knoten *a        = 0;
		struct knoten *b        = 0;
		struct knoten *iterator = anfang;
		bool tausch         = false;
		string temp;
		int temp2          = 0;

		// Bubblesort: Absteigend
		do {
			tausch     = false;
			iterator = anfang;

			// Jedes Element in der Liste einmal ueberpruefen
			for ( int i=0; i&lt;size-1; i++ ) {
				a        = iterator;
				b        = iterator-&gt;next;
				iterator = iterator-&gt;next;

				// Elemente miteinander vergleichen
				if ( a-&gt;info.get_name() &lt; b-&gt;info.get_name() ) {
					// Elemente untereinander austauschen
					temp = b-&gt;info.get_name();
					b-&gt;info.set_name(a-&gt;info.get_name());
					a-&gt;info.set_name(temp);

					temp2 = b-&gt;info.get_x_koordinate();
					b-&gt;info.set_x_koordinate(a-&gt;info.get_x_koordinate());
					a-&gt;info.set_x_koordinate(temp2);

					temp2 = b-&gt;info.get_y_koordinate();
					b-&gt;info.set_y_koordinate(a-&gt;info.get_y_koordinate());
					a-&gt;info.set_y_koordinate(temp2);

					tausch    = true;
				}
			}
		} while ( tausch ); // Solange Elemente getauscht wurden Bubblesort wiederholen

	}
</code></pre>
<pre><code class="language-cpp">void liste_sortieren_asc()
	{
	  // Pruefen ob mehr als 1 Element vorhanden sind
	 if ( size &lt; 2 ) return;

		struct knoten *a        = 0;
		struct knoten *b        = 0;
		struct knoten *iterator = anfang;
		bool tausch         = false;
		string temp;
		int temp2          = 0;

		// Bubblesort: Aufsteigend
		do {
			tausch     = false;
			iterator = anfang;

			// Jedes Element in der Liste einmal ueberpruefen
			for ( int i=0; i&lt;size-1; i++ ) {
				a        = iterator;
				b        = iterator-&gt;next;
				iterator = iterator-&gt;next;

				// Elemente miteinander vergleichen
				if ( a-&gt;info.get_name() &gt; b-&gt;info.get_name() ) {
					// Elemente untereinander austauschen
					temp = b-&gt;info.get_name();
					b-&gt;info.set_name(a-&gt;info.get_name());
					a-&gt;info.set_name(temp);

					temp2 = b-&gt;info.get_x_koordinate();
					b-&gt;info.set_x_koordinate(a-&gt;info.get_x_koordinate());
					a-&gt;info.set_x_koordinate(temp2);

					temp2 = b-&gt;info.get_y_koordinate();
					b-&gt;info.set_y_koordinate(a-&gt;info.get_y_koordinate());
					a-&gt;info.set_y_koordinate(temp2);

					tausch    = true;
				}
			}
		} while ( tausch ); // Solange Elemente getauscht wurden Bubblesort wiederholen

	}
</code></pre>
<p>Gruß</p>
<p>Dolphon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240949/gelöst-bubbelsort-aufsteigend-absteigend-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 19:12:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240949.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 May 2009 20:30:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst]Bubbelsort aufsteigend absteigend sortieren on Wed, 13 May 2009 21:49:26 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe habe 2 Methoden geschrieben, um eine verkettet Liste DESC bzw. ASC zu sortieren.<br />
Allerdings sortiert die ASC Methode DESC.<br />
Ich kann den Fehler leider nicht finden. Vllt. findet ihr den Fehler:</p>
<pre><code class="language-cpp">void liste_sortieren_desc()
	{	
		// Pruefen ob mehr als 1 Element vorhanden sind
		if ( size &lt; 2 ) return;

		struct knoten *a        = 0;
		struct knoten *b        = 0;
		struct knoten *iterator = anfang;
		bool tausch         = false;
		string temp;
		int temp2          = 0;

		// Bubblesort: Absteigend
		do {
			tausch     = false;
			iterator = anfang;

			// Jedes Element in der Liste einmal ueberpruefen
			for ( int i=0; i&lt;size-1; i++ ) {
				a        = iterator;
				b        = iterator-&gt;next;
				iterator = iterator-&gt;next;

				// Elemente miteinander vergleichen
				if ( a-&gt;info.get_name() &lt; b-&gt;info.get_name() ) {
					// Elemente untereinander austauschen
					temp = b-&gt;info.get_name();
					b-&gt;info.set_name(a-&gt;info.get_name());
					a-&gt;info.set_name(temp);

					temp2 = b-&gt;info.get_x_koordinate();
					b-&gt;info.set_x_koordinate(a-&gt;info.get_x_koordinate());
					a-&gt;info.set_x_koordinate(temp2);

					temp2 = b-&gt;info.get_y_koordinate();
					b-&gt;info.set_y_koordinate(a-&gt;info.get_y_koordinate());
					a-&gt;info.set_y_koordinate(temp2);

					tausch    = true;
				}
			}
		} while ( tausch ); // Solange Elemente getauscht wurden Bubblesort wiederholen

	}
</code></pre>
<pre><code class="language-cpp">void liste_sortieren_asc()
	{
	  // Pruefen ob mehr als 1 Element vorhanden sind
	 if ( size &lt; 2 ) return;

		struct knoten *a        = 0;
		struct knoten *b        = 0;
		struct knoten *iterator = anfang;
		bool tausch         = false;
		string temp;
		int temp2          = 0;

		// Bubblesort: Aufsteigend
		do {
			tausch     = false;
			iterator = anfang;

			// Jedes Element in der Liste einmal ueberpruefen
			for ( int i=0; i&lt;size-1; i++ ) {
				a        = iterator;
				b        = iterator-&gt;next;
				iterator = iterator-&gt;next;

				// Elemente miteinander vergleichen
				if ( a-&gt;info.get_name() &gt; b-&gt;info.get_name() ) {
					// Elemente untereinander austauschen
					temp = b-&gt;info.get_name();
					b-&gt;info.set_name(a-&gt;info.get_name());
					a-&gt;info.set_name(temp);

					temp2 = b-&gt;info.get_x_koordinate();
					b-&gt;info.set_x_koordinate(a-&gt;info.get_x_koordinate());
					a-&gt;info.set_x_koordinate(temp2);

					temp2 = b-&gt;info.get_y_koordinate();
					b-&gt;info.set_y_koordinate(a-&gt;info.get_y_koordinate());
					a-&gt;info.set_y_koordinate(temp2);

					tausch    = true;
				}
			}
		} while ( tausch ); // Solange Elemente getauscht wurden Bubblesort wiederholen

	}
</code></pre>
<p>Gruß</p>
<p>Dolphon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1710163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1710163</guid><dc:creator><![CDATA[Dolphon]]></dc:creator><pubDate>Wed, 13 May 2009 21:49:26 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Bubbelsort aufsteigend absteigend sortieren on Wed, 13 May 2009 20:56:54 GMT]]></title><description><![CDATA[<p>Ich glaub dir beim besten Willen nicht, dass du die Funktionen selbst geschrieben hast und jetzt nicht das Sortierkriterium nicht einstellen kannst <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1710179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1710179</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 13 May 2009 20:56:54 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Bubbelsort aufsteigend absteigend sortieren on Wed, 13 May 2009 21:38:28 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Ich glaub dir beim besten Willen nicht, dass du die Funktionen selbst geschrieben hast und jetzt nicht das Sortierkriterium nicht einstellen kannst <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>
</blockquote>
<p>lol. da hast du recht.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17009">@Dolphon</a>:<br />
wenn ich richtig sehe, ist nur der vergleich oben &gt; und unten &lt;. sonst gar nix anders. und so soll es ja auch sein. wenn DESC klappt, klappt mit der änderung auch ASC.<br />
anscheinend hast du aus versehen beim testen die falsche richtige funktion aufgerufen und deswegen das richtig falsche ergebnis. wenn ich richtig gesehen habe und nur &gt; zu &lt; verändert wurde, müßte es wie gewünscht funktieren.</p>
<p>ich habe nicht geprüft, ob die DESC korrekt ist. die ist mir zu arg 80er-jahre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1710189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1710189</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 13 May 2009 21:38:28 GMT</pubDate></item></channel></rss>