<?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[Vektor sortieren]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich versuche mich gerade an Kruskals Algorithmus um ein Netzwerkproblem zu lösen.</p>
<p>Meine Frage: Wie kann ich einen Vektor sortieren?<br />
Und zwar ist es ein Vektor folgender Form &quot; vector&lt;Edge*&gt; &quot; wobei jede Kante edge (welche im Vektor ist) ein Gewicht hat, also edge-&gt; weight.<br />
Nun möchte ich meinen Vektor so sortieren, dass die Kante mit kleinstem Gewicht zuerst steht, etc.</p>
<p>Ich habe mal gegoogelt und habe etwas in der Art sort(vector.begin(), vector.end(),function comp) gefunden...ich verstehe aber nicht ganz wie ich das umsetzen kann. Könnte mir jemand erklären wie das funktioniert und wie ich meinen Vektor sortieren kann?</p>
<p>lieber Gruss &amp; schon mal vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303510/vektor-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 11:08:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303510.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 May 2012 20:22:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 20:22:54 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich versuche mich gerade an Kruskals Algorithmus um ein Netzwerkproblem zu lösen.</p>
<p>Meine Frage: Wie kann ich einen Vektor sortieren?<br />
Und zwar ist es ein Vektor folgender Form &quot; vector&lt;Edge*&gt; &quot; wobei jede Kante edge (welche im Vektor ist) ein Gewicht hat, also edge-&gt; weight.<br />
Nun möchte ich meinen Vektor so sortieren, dass die Kante mit kleinstem Gewicht zuerst steht, etc.</p>
<p>Ich habe mal gegoogelt und habe etwas in der Art sort(vector.begin(), vector.end(),function comp) gefunden...ich verstehe aber nicht ganz wie ich das umsetzen kann. Könnte mir jemand erklären wie das funktioniert und wie ich meinen Vektor sortieren kann?</p>
<p>lieber Gruss &amp; schon mal vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211929</guid><dc:creator><![CDATA[ands]]></dc:creator><pubDate>Tue, 15 May 2012 20:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 20:34:44 GMT]]></title><description><![CDATA[<p>Du schreibst eine Funktion die zwei <code>const Edge*</code> entgegen nimmt und true zurück gibt, wenn das erste im Sinne deiner Ordnung Argument kleiner ist als das zweite, ansonsten false. Und den Namen dieser Funktion übergibst du dann dem sort als dritten Parameter, die ersten beiden sind, wie in deinem Beispiel, der Anfang und das Ende des zu sortierenden Bereiches.</p>
<p>Bist du sicher, dass du einen vector benutzen möchtest und keinen Container, der automatisch ständig sortiert ist, wie z.B. (multi-)set? Edge klingt nach Grafikkram, da kenne ich mich nicht so aus, kann sein, dass ich Mist erzähle mit dem set und man das bei Computergrafik nicht so macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211935</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 15 May 2012 20:34:44 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 20:37:04 GMT]]></title><description><![CDATA[<p>Er will einen MST berechnen mit Kurskal. Hat in dem Fall nix mit Grafik zu tun.</p>
<p>So kannst du das machen:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

using std::cout;
using std::cin;
using std::endl;
using std::vector;

struct Edge
{
	// Other stuff
	double distance;

	Edge( double dist )
		: distance(dist)
	{}
};

// Compares two Edges by their distance
bool compare( const Edge&amp; e1, const Edge&amp; e2 )
{
	return e1.distance &lt; e2.distance;
}

int main()
{
	vector&lt;Edge&gt; edges;
	edges.push_back( Edge(2.3) );
	edges.push_back( Edge(0.3) );
	edges.push_back( Edge(1.0) );

	cout &lt;&lt; &quot;Unordered:&quot; &lt;&lt; endl;
	for ( size_t i = 0; i &lt; edges.size(); ++i )
		cout &lt;&lt; edges[i].distance &lt;&lt; endl;

	std::sort( edges.begin(), edges.end(), compare );

	cout &lt;&lt; endl &lt;&lt; &quot;Ordered:&quot; &lt;&lt; endl;
	for ( size_t i = 0; i &lt; edges.size(); ++i )
		cout &lt;&lt; edges[i].distance &lt;&lt; endl;
}
</code></pre>
<p>Falls du etwas im Code nicht verstehst frage einfach nach <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2211937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211937</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Tue, 15 May 2012 20:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 20:39:53 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bist du sicher, dass du einen vector benutzen möchtest und keinen Container, der automatisch ständig sortiert ist, wie z.B. (multi-)set?</p>
</blockquote>
<p>Ergänzend zu SeppJ möchte ich <a href="http://www-lehre.informatik.uni-osnabrueck.de/~graph/skript/5_1_Algorithmus_von.html" rel="nofollow">heap</a> einwerfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211938</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 15 May 2012 20:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 20:44:30 GMT]]></title><description><![CDATA[<p>Herzlichen Dank für die schnelle Antwort - genau das habe ich gesucht <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/2211942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211942</guid><dc:creator><![CDATA[ands]]></dc:creator><pubDate>Tue, 15 May 2012 20:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 20:50:45 GMT]]></title><description><![CDATA[<p>Wenn Du statt der Funktion (genauer: des Zeigers auf die Funktion, aber das erledigt C++ automatisch) ein Comparator-Objekt übergibst, holst Du dann noch ein Quäntchen Performance heraus, weil dann sogar der dümmste Compiler inlinen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211944</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 15 May 2012 20:50:45 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 22:22:43 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Ergänzend zu SeppJ möchte ich <a href="http://www-lehre.informatik.uni-osnabrueck.de/~graph/skript/5_1_Algorithmus_von.html" rel="nofollow">heap</a> einwerfen.</p>
</blockquote>
<p>Ich staune gerade, dass die Seite von einer Uni sein soll. Bin ich so neben der Rolle? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Zuerst einmal ist der Algorithmus falsch formuliert. Man kann nicht einfach billigste Kanten in den Wald einfügen, bis er zusammenhängend ist. Dabei können Kreise entstehen, sodass das Ergebnis kein Baum ist. Dann sehe ich nicht, warum man alle Kanten in einem Heap vorhalten sollte. Ein sortiertes Array tuts ebenfalls. Die Laufzeit des Algorithmus wird mit dem Heap erklärt, aber auf die Laufzeit zum Vereinigen der Zusammenhangskomponenten im Wald geht er nicht ein. Der unten stehende Satz gilt nur, wenn alle Kantengewichte paarweise verschieden sind.</p>
<p>Edit: Auf der nächsten Seite wirds nicht besser. Da wird als Laufzeit von Prim O(m*log(n)) angegeben, was bei dichten Graphen schneller sein soll, weil bei Prim die Laufzeit m*log(m) = n²*log(n)*2 sei. Von Landaunotation hat der Herr wohl noch nichts gehört. Lustigerweise schreibt er zwei Sätze vorher, dass bei Prim jede Kante zweimal bearbeitet wird. Wo ist dieser Faktor 2 denn jetzt hin? <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="😉"
    /> Sowas war mal ne Vorlesung?</p>
<p>Edit: Und bei negativen Kantenkosten ist das Kürzeste-Wege-Problem nicht wohldefiniert. Soso, auf konservativen Gewichten gibts also kein Bellman-Ford?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211980</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 15 May 2012 22:22:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor sortieren on Tue, 15 May 2012 22:19:29 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Ergänzend zu SeppJ möchte ich <a href="http://www-lehre.informatik.uni-osnabrueck.de/~graph/skript/5_1_Algorithmus_von.html" rel="nofollow">heap</a> einwerfen.</p>
</blockquote>
<p>Ich staune gerade, dass die Seite von eine Uni sein soll...</p>
</blockquote>
<p>Ich muß gestehen, daß von der einfachen Heuristik &quot;Graphentheorie =&gt; Heap&quot; ausging. Die klappt verdammt oft. Einfach mal gegoogelt. Und dann habe ich einfach geglaubt, weil die Seite von einer Uni ist. Nein, habe ich nicht. Es paßte nicht. Der Algo forderte keinen Heap. Da war ich verwirrt. Und dann habe ich nachgedacht. Aber alles, was ich dachte, war widersprüchlich zur Uni-Seite. Nuja, Uni hat recht, dachte ich dann. Sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211984</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 15 May 2012 22:19:29 GMT</pubDate></item></channel></rss>