<?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[row major order umsortieren in column major order]]></title><description><![CDATA[<p>Hallo!</p>
<p>Gibt es einen Algorithmus, der es mir erlaubt arrays, die in row major order gespeichert sind in column major order umzusortieren?<br />
Ich möchte während der umsortierung nicht einen extra bufferarray der selben größe im speicher anlegen, da die daten sehr groß sind. Meine version funktioniert bis jetzt nur so. Das ganze sollte in C/C++ gehalten sein.</p>
<p>mfg<br />
hoppel55</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200891/row-major-order-umsortieren-in-column-major-order</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 05:02:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200891.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Dec 2007 23:10:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to row major order umsortieren in column major order on Thu, 20 Dec 2007 23:10:10 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Gibt es einen Algorithmus, der es mir erlaubt arrays, die in row major order gespeichert sind in column major order umzusortieren?<br />
Ich möchte während der umsortierung nicht einen extra bufferarray der selben größe im speicher anlegen, da die daten sehr groß sind. Meine version funktioniert bis jetzt nur so. Das ganze sollte in C/C++ gehalten sein.</p>
<p>mfg<br />
hoppel55</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424171</guid><dc:creator><![CDATA[hoppel55]]></dc:creator><pubDate>Thu, 20 Dec 2007 23:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to row major order umsortieren in column major order on Fri, 21 Dec 2007 20:15:30 GMT]]></title><description><![CDATA[<p>Hmm? Wenn du zwei Indizes hast, dann reicht es doch denke ich a[i][j] und a[j][i] zu tauschen, mit 0 &lt;= i &lt; n und 0 &lt;= j &lt; i (quasi transponieren).</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; n; ++i)
    for (int j = 0; j &lt; i; ++j)
         std::swap (a[i][j], a[j][i];
</code></pre>
<p>Wenns nicht quadratisch ist, dann berechne den eigentlichen Index.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424599</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 21 Dec 2007 20:15:30 GMT</pubDate></item><item><title><![CDATA[Reply to row major order umsortieren in column major order on Sun, 23 Dec 2007 00:55:22 GMT]]></title><description><![CDATA[<p>Ich hab vergessen zu sagen, dass es eine dreidimensionale matrix ist. ich mach das schon so, dass ich den index direkt berechne, mit einer for-schleife. D.h. ich lese die Daten in einen linearen array ein und berechne aus dem row major index den zugehörigen column major index. mein problem ist nur, dass es sich um 1024^3 float arrays handelt und ich für den column major array einen neuen array im speicher anlege. ich suche nach einem algorithmus, der mir die sortierung direkt auf dem alten row major array durchführt.</p>
<p>Gruß<br />
hoppel55</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425041</guid><dc:creator><![CDATA[hoppel55]]></dc:creator><pubDate>Sun, 23 Dec 2007 00:55:22 GMT</pubDate></item><item><title><![CDATA[Reply to row major order umsortieren in column major order on Tue, 25 Dec 2007 06:15:17 GMT]]></title><description><![CDATA[<p>Ist doch aber immer noch dasselbe, oder, nur halt mit 3 Dimensionen.<br />
Also</p>
<pre><code class="language-cpp">float* a = ...
for (unsigned x = 0; x &lt; 1024; x++)
    for (unsigned y = 0; y &lt; 1024; y++)
        for (unsigned z = x; z &lt; 1024; z++)
            std::swap(a[(x * 1024 + y) * 1024 + z], a[(z * 1024 + y) * 1024 + x]);
</code></pre>
<p>zumindest wenn ich mich jetzt nicht ganz irre <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/1425803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425803</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 25 Dec 2007 06:15:17 GMT</pubDate></item></channel></rss>