<?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[Eigene Sortierfunktion übergeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>momentan scheitere ich daran eine eigene Sortierfunktion für QPointF an std::sort() zu übergeben.<br />
Ich würde gerne einen std::vector&lt;QPointF&gt; in links/rechts vom Median sortieren:</p>
<pre><code>class YMedianComparator
{
  QPointF yMedian;

public:
  YMedianComparator(QPointF _yMedian)
    : yMedian(_yMedian)
  {
  }

  bool operator &lt; (const QPointF point) const { return yMedian.y() &lt; point.y(); }
};
</code></pre>
<p>Der Aufruf:</p>
<pre><code>std::sort(left, right, YMedianComparator(median));
</code></pre>
<p>Führt zu:</p>
<pre><code>/usr/include/c++/5.2.1/bits/predefined_ops.h:144: Fehler: type 'YMedianComparator' does not provide a call operator
        { return bool(_M_comp(*__it, __val)); }
                      ^~~~~~~
</code></pre>
<p>Any ideas?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/335652/eigene-sortierfunktion-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 08:52:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/335652.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Dec 2015 17:06:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 17:06:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>momentan scheitere ich daran eine eigene Sortierfunktion für QPointF an std::sort() zu übergeben.<br />
Ich würde gerne einen std::vector&lt;QPointF&gt; in links/rechts vom Median sortieren:</p>
<pre><code>class YMedianComparator
{
  QPointF yMedian;

public:
  YMedianComparator(QPointF _yMedian)
    : yMedian(_yMedian)
  {
  }

  bool operator &lt; (const QPointF point) const { return yMedian.y() &lt; point.y(); }
};
</code></pre>
<p>Der Aufruf:</p>
<pre><code>std::sort(left, right, YMedianComparator(median));
</code></pre>
<p>Führt zu:</p>
<pre><code>/usr/include/c++/5.2.1/bits/predefined_ops.h:144: Fehler: type 'YMedianComparator' does not provide a call operator
        { return bool(_M_comp(*__it, __val)); }
                      ^~~~~~~
</code></pre>
<p>Any ideas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477936</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Wed, 02 Dec 2015 17:06:17 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 17:15:07 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>siehe:<br />
<a href="http://en.cppreference.com/w/cpp/algorithm/sort" rel="nofollow">http://en.cppreference.com/w/cpp/algorithm/sort</a></p>
<p>Was heißt den links / rechts einsortiert? Die Elemente sind untereinander sortiert, aber nicht zu einem speziellen Wert (von außen).</p>
<p>Also wenn ich Dich richtig verstehe würde ich das eher so sehen:</p>
<pre><code>std::vector&lt; QPointF &gt; points;
std::vector&lt; QPointF &gt; pointsLeftMedian;
std::vector&lt; QPointF &gt; pointsRightMedian;

for( const QPointF&amp; p : points ) {
  if( p &lt; median ) {
    pointsLeftMedian.push_back( p );
  } else {
    pointsRightMedian.push_back( p );
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2477938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477938</guid><dc:creator><![CDATA[__jb__]]></dc:creator><pubDate>Wed, 02 Dec 2015 17:15:07 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 17:19:37 GMT]]></title><description><![CDATA[<p>Die Signatur für den dritten sort-Parameter sieht so aus:</p>
<pre><code>bool operator()( const T&amp; lhs, const T&amp; rhs ) const;
</code></pre>
<p>Wenn ein Vergleichswert konstant ist kannst du ihn z.B. mit <code>std::bind2nd</code> an den zweiten Parameter binden:</p>
<pre><code>struct mycmp : std::binary_function&lt;QPointF,QPointF,bool&gt;
{
   bool operator( const QPointF&amp; lhs, const QPointF&amp; rhs ) const
   {
      return lhs.y() &lt; rhs.y();
   }
};

QPointF median;
sort( v.begin(), v.end(), bind2nd( mycmp(), median ) );
</code></pre>
<p>Mit C++11 und Lambdas geht das aber bestimmt schöner.</p>
<p>Edit:<br />
<code>std::partition</code> eignet sich hier besser als <code>std:.sort</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477939</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 02 Dec 2015 17:19:37 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 17:42:47 GMT]]></title><description><![CDATA[<p>Danke, das hilft schon mal!</p>
<p>Ich würde die Vergleichsfunktion gerne übergeben:</p>
<pre><code>void partitionField(std::vector&lt;T&gt;* field, int leftIndex, int rightIndex,
                      std::function&lt;int(QPointF)&gt;&amp; compare)
  {
    auto left = field-&gt;begin();
    std::advance(left, leftIndex);

    // Ende ist bei std::partition() explizit, deshalb + 1
    auto right = field-&gt;begin();
    std::advance(right, rightIndex + 1);

    std::partition(left, right, compare);
  }

void bla() {
    // ...
    const auto f = [median](const QPointF&amp; point) {
      return point.y() &lt; median.y();
    };

    partitionField(x, leftIndex, rightIndex, f);
}
</code></pre>
<p>Leider liefert das einen Fehler:</p>
<pre><code>Fehler: non-const lvalue reference to type 'std::function&lt;int (QPointF)&gt;' cannot bind to a value of unrelated type 'const (lambda at ../ComputGeom3/avltree.h:171:24)'
        partitionField(x, leftIndex, rightIndex, f);
                                                 ^
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2477942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477942</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Wed, 02 Dec 2015 17:42:47 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 17:45:50 GMT]]></title><description><![CDATA[<p>Bei Median in C++ immer an <a href="http://en.cppreference.com/w/cpp/algorithm/nth_element" rel="nofollow">std::nth_element</a> denken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477943</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Wed, 02 Dec 2015 17:45:50 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 18:01:58 GMT]]></title><description><![CDATA[<p>Verflixt und zugenäht! Ich komme einfach auf keine schöne Lösung!</p>
<pre><code>template &lt; typename Comparator &gt;
  void partitionField(std::vector&lt;T&gt;* field, int leftIndex, int rightIndex,
                      int medianIndex,
                      Comparator comp)
  {
    auto left = field-&gt;begin();
    std::advance(left, leftIndex);

    // Ende ist bei std::partition() explizit, deshalb + 1
    auto right = field-&gt;begin();
    std::advance(right, rightIndex + 1);

    std::nth_element(left, medianIndex, right, comp);
  }

void bla() {
    // ...
    partitionField&lt;LessYComparator&gt;(x, leftIndex, medianIndex, rightIndex, LessYComparator());
}
</code></pre>
<pre><code>Fehler: no matching function for call to 'nth_element'
    std::nth_element(left, medianIndex, right, comp);
    ^~~~~~~~~~~~~~~~
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2477944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477944</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Wed, 02 Dec 2015 18:01:58 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 18:07:46 GMT]]></title><description><![CDATA[<p>Bei <code>std::vector</code> braucht man <code>std::advance</code> nicht unbedingt und kann direkt auf die Iteratoren was addieren. Es compiliert gerade nicht weil dein medianIndex ein int ist und kein Iterator. Dein vorheriges Beispiel hat nicht compiliert weil du deine const Lambda Funktion an eine non-const Reference binden wolltest. Ließ mal etwas aufmerksamer die Fehlermeldungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477945</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Wed, 02 Dec 2015 18:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 18:09:45 GMT]]></title><description><![CDATA[<p>Ja, das mit dem Iterator ist mir auch gerade aufgefallen. Versuche mich seit über 1 h daran und verliere gerade die Geduld. <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>
<p>Jedenfalls danke! Scheint erst mal zu funktionieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477946</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Wed, 02 Dec 2015 18:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Wed, 02 Dec 2015 18:11:05 GMT]]></title><description><![CDATA[<p>Und bitte die explizite Angabe des Template Parameters entfernen. (Informativer und unterhaltsamer Vortrag dazu: <a href="https://channel9.msdn.com/Events/GoingNative/2013/Don-t-Help-the-Compiler" rel="nofollow">Don’t Help the Compiler</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477947</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Wed, 02 Dec 2015 18:11:05 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Thu, 03 Dec 2015 19:49:58 GMT]]></title><description><![CDATA[<p>Sorry, Jungs, ich krieg das einfach nicht hin. Mein Ansatz funktioniert nicht und erreicht möglicherweise auch nicht die geforderte Laufzeit.</p>
<p>Folgendes soll reicht werden:</p>
<pre><code>- Sort all points both by x- and y-coordinates
    =&gt; Two sorted sequences X and Y.

- Subdivide Y at its median and take it as the root of the tree
    =&gt; Two sub-sequences Y1 and Y2

- Partition X into two sequences X1 and X2, such that X1 contains the
same points as Y1 and X2 the same points as Y2.

- Partition X1 and X2 recursively at the median and subdivide Y1 and Y2
accordingly as above, until these sequences contain only one point.
    - These points are the leafs of the tree.
</code></pre>
<p>Dabei soll das Partitionieren in O(n) geschehen.</p>
<pre><code>void partitionField(std::vector&lt;QPointF&gt;* field,
                    const int leftIndex,
                    const int rightIndex,
                    const std::function&lt;int(QPointF)&gt;&amp; medianCompare)
  {
    auto leftIt = field-&gt;begin() + leftIndex;

    // Ende ist bei std::partition() explizit, deshalb + 1
    auto rightIt = field-&gt;begin() + rightIndex + 1;

    std::stable_partition(leftIt, rightIt, medianCompare);
  }
</code></pre>
<p>Dummerweise funktioniert das mit folgender Sort-Funktion nicht:</p>
<pre><code>const auto compare = [yMedian](const QPointF&amp; point) {
    return point.y() &lt; yMedian.y();
  };
</code></pre>
<p>Compilierfähiger Code ist hier zu finden:</p>
<p><a href="https://ideone.com/MZoeBL" rel="nofollow">https://ideone.com/MZoeBL</a></p>
<p>Habe extra die Qt-Klasse QPointF abgebildet, damit das dort läuft.</p>
<p>Jemand eine Idee?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478091</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Thu, 03 Dec 2015 19:49:58 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Thu, 03 Dec 2015 21:24:42 GMT]]></title><description><![CDATA[<p>Funktionirt micht - aha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478102</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 03 Dec 2015 21:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Thu, 03 Dec 2015 22:04:35 GMT]]></title><description><![CDATA[<p>Ja, funktioniert nicht. Das ist ja das Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478108</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Thu, 03 Dec 2015 22:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Thu, 03 Dec 2015 23:05:53 GMT]]></title><description><![CDATA[<p>Ich habe nun getrickst. Keine Ahnung, ob die Lösung gut ist.</p>
<pre><code>template &lt; typename MedianSort, typename OrderComparator &gt;
  void partitionField(std::vector&lt;T&gt;* field,
                      const int leftIndex,
                      const int medianIndex,
                      const int rightIndex,
                      MedianSort medianSort,
                      OrderComparator orderSort)
  {
    auto leftIt = field-&gt;begin() + leftIndex;

    auto medianIt = field-&gt;begin() + medianIndex;

    // Ende ist bei std::partition() explizit, deshalb + 1
    auto rightIt = field-&gt;begin() + rightIndex + 1;

    std::sort(leftIt, rightIt, medianSort);

    std::sort(leftIt,       medianIt, orderSort);
    std::sort(medianIt + 1, rightIt,  orderSort);
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478111</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Thu, 03 Dec 2015 23:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Fri, 04 Dec 2015 01:41:23 GMT]]></title><description><![CDATA[<p>SortFunc schrieb:</p>
<blockquote>
<p>Ich habe nun getrickst. Keine Ahnung, ob die Lösung gut ist.</p>
</blockquote>
<p>Ich glaube nicht, dass dies den gewünschten Laufzeitanforderungen gerecht wird. Viel zu viel Sortiererei. Wenn du dich an die Vorgabe hältst, muss nur ein einziges Mal (beziehungsweise 2x, da für x und y) am Anfang sortiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478114</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 04 Dec 2015 01:41:23 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 16:30:56 GMT]]></title><description><![CDATA[<p>Das ist mir bewusst, nur haben alle anderen Ansätze gescheitert und lieber benutze ich eine korrekte Lösung als eine falsche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478559</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Mon, 07 Dec 2015 16:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 18:02:29 GMT]]></title><description><![CDATA[<p>Irgendwie ist es total unnötig, dass du mindestens 4mal sortierst. Wenn du bereits einen der Vektoren nach den x-Koordinaten sortiert hast dann bist du doch eigentlich schon fertig. Der Median steht in der Mitte, alles kleinere links davon und die größeren Zahlen rechts. Da gibts es überhaupt gar nichts mehr zu partitionieren oder zu sortieren. Die anderen hier genannten Funktionen wie <code>std::partition</code> oder <code>std::nth_elemnt</code> sparen in bestimmten Situationen Zeit. Ein <code>std::partition</code> macht Sinn wenn du den Median bereits kennst (woher auch immer) und du nur an den unsortieren Partitionen interessiert bist. Über <code>std::nth_elemnt</code> kriegst du den Median und die Partitionen raus ohne den Vektor komplett zu sortieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478567</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Mon, 07 Dec 2015 18:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 18:07:21 GMT]]></title><description><![CDATA[<p>Das Problem ist aber komplexer, siehe Seite 1 ganz unten.<br />
Ich muss z. B. x nach dem Median von y partitionieren und dabei die X-Kleiner-Ordnung beibehalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478569</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Mon, 07 Dec 2015 18:07:21 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 18:34:12 GMT]]></title><description><![CDATA[<p>Habs auch vorhin gemerkt. Mir ist auch noch ein Problem mit <code>std::partition</code> oder <code>std::stable_partition</code> aufgefallen. Wenn dir der y-Median bekannt ist und damit den x-Bereich partitionieren willst landet der Median in einer der Partitionen (je nachdem ob man <code>&lt;</code> oder <code>&lt;=</code> in der Vergleichsfunktion nutzt). Allerdings weiß man nicht wo dieser steht. Dank double kann man diesen auch nicht so einfach suchen (Vergleiche auf Gleicheit mit floating point Variablen sind böse). Ich würde dir daher wieder zu <code>std::nth_element</code> raten. Irgendwie ist sowieso das ganze hin und her mit den zwei Bereichen nervig, wird aber so von der Aufgabenstellung verlang...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478572</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Mon, 07 Dec 2015 18:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 18:52:23 GMT]]></title><description><![CDATA[<p>Das Problem ist aber, dass std::nth_element die Ordnung nicht beibehält, deswegen hat es auch eine Laufzeit von O(n):<br />
Siehe &quot;Complexity&quot;<br />
<a href="http://en.cppreference.com/w/cpp/algorithm/nth_element" rel="nofollow">http://en.cppreference.com/w/cpp/algorithm/nth_element</a></p>
<p>Wenn man die Ordnung beibehalten möchte, muss man sortieren und sortieren ist mind. n * log(n). Ich kann daher nicht glauben, dass die Angaben von meinem Prof. stimmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478574</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Mon, 07 Dec 2015 18:52:23 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 18:56:41 GMT]]></title><description><![CDATA[<p>Welche Ordnung meinst du? Die der x-Elemente? Wird das irgendwo gefordert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478575</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Mon, 07 Dec 2015 18:56:41 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 19:07:46 GMT]]></title><description><![CDATA[<p>Ja, ich meine die der X-Elemente. Ob das gefordert ist? Naja, man soll rekursiv immer den Median nehmen – einmal den von y und damit x partitionieren und einmal den von x und damit y partitionieren. Median heißt aber: Sortiere und picke aus der Mitte.<br />
Wenn du dir Beispiele aus kd-Bäumen anschaust (in meinem Fall 2D-Bäume), dann ist die Ordnung in den Beispielen auch immer beibehalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478577</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Mon, 07 Dec 2015 19:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 19:48:30 GMT]]></title><description><![CDATA[<p>Halte dich doch einfach mal ganz genau an die Aufgabenstellung. Da ist doch alles Schritt für Schritt erklärt. Erfinde keine eigenen Sortierschritte oder Sonstiges.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478580</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 07 Dec 2015 19:48:30 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 20:06:44 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>:</p>
<p>Der Punkt ist: Die Kleiner-Ordnung geht hier in X1 und X2 ab diesem Schritt verloren:</p>
<pre><code>- Partition X into two sequences X1 and X2, such that X1 contains the 
same points as Y1 and X2 the same points as Y2.
</code></pre>
<p>Damit könnte ich im nächsten Schritt nicht mehr den Median von X1 und X2 finden ohne vorher nach der X-Kleiner-Ordnung in den Partitionen zu sortieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478583</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Mon, 07 Dec 2015 20:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 20:45:42 GMT]]></title><description><![CDATA[<p>SortFunc schrieb:</p>
<blockquote>
<p>Der Punkt ist: Die Kleiner-Ordnung geht hier in X1 und X2 ab diesem Schritt verloren:</p>
</blockquote>
<p>Wieso? Zum Partitionieren musst du doch nicht die Reihenfolge verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478588</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 07 Dec 2015 20:45:42 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 20:56:14 GMT]]></title><description><![CDATA[<p>Nach x sortiert:</p>
<pre><code>X = { (1,4), (2,3), (3, 2), (4, 1) }
</code></pre>
<p>Nach y sortiert:</p>
<pre><code>Y = { (4,1), (3,2), (2,3), (1,4) }
</code></pre>
<p>Median von Y: (3,2)</p>
<pre><code>Y1 = { (4,1) }
Y2 = { (2,3), (1,4) }
</code></pre>
<p>Daraus folgt:</p>
<pre><code>X1 = { (4,1) }
X2 = { (2,3), (1,4) }
</code></pre>
<p>X2 ist nun anders angeordnet und die Kleiner-Ordnung in X wird verletzt (könnte natürlich auch zufällig richtig angeordnet sein).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478589</guid><dc:creator><![CDATA[SortFunc]]></dc:creator><pubDate>Mon, 07 Dec 2015 20:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to Eigene Sortierfunktion übergeben on Mon, 07 Dec 2015 21:20:03 GMT]]></title><description><![CDATA[<p>Du sollst nicht X1=Y1 und X2=Y2 sagen. In der Vorgabe steht du sollst X aufteilen, so dass X1 die gleichen Elemente wie Y1 enthält und ebenso für X2. Da X bereits sortiert ist, sind dann auch automatisch X1 und X2 sortiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478591</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 07 Dec 2015 21:20:03 GMT</pubDate></item></channel></rss>