<?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[Quicksort ins Template]]></title><description><![CDATA[<p>Hallo. Wir auf der uni haben eine aufgabe bekommen einen quicksort code in c++ mit der benutzung eines templates zu schreiben.</p>
<p>Der Kollege aus der Gruppe hat den Quicksort code schon geschrieben, nur sind wir beim Template stecken geblieben.</p>
<p>Kann mir jemand helfen dieses Problem zu lösen?</p>
<p>das template:</p>
<p><a href="http://farukp.com/cpp/AbstractContainer.h" rel="nofollow">http://farukp.com/cpp/AbstractContainer.h</a></p>
<p>und unser code:</p>
<p><a href="http://farukp.com/cpp/Quick.cpp" rel="nofollow">http://farukp.com/cpp/Quick.cpp</a><br />
<a href="http://farukp.com/cpp/Quick.h" rel="nofollow">http://farukp.com/cpp/Quick.h</a><br />
<a href="http://farukp.com/cpp/quicksort.cpp" rel="nofollow">http://farukp.com/cpp/quicksort.cpp</a></p>
<p>Ich bin durchaus dankbar für jede hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147766/quicksort-ins-template</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 11:23:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147766.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 May 2006 17:55:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Quicksort ins Template on Fri, 19 May 2006 17:55:33 GMT]]></title><description><![CDATA[<p>Hallo. Wir auf der uni haben eine aufgabe bekommen einen quicksort code in c++ mit der benutzung eines templates zu schreiben.</p>
<p>Der Kollege aus der Gruppe hat den Quicksort code schon geschrieben, nur sind wir beim Template stecken geblieben.</p>
<p>Kann mir jemand helfen dieses Problem zu lösen?</p>
<p>das template:</p>
<p><a href="http://farukp.com/cpp/AbstractContainer.h" rel="nofollow">http://farukp.com/cpp/AbstractContainer.h</a></p>
<p>und unser code:</p>
<p><a href="http://farukp.com/cpp/Quick.cpp" rel="nofollow">http://farukp.com/cpp/Quick.cpp</a><br />
<a href="http://farukp.com/cpp/Quick.h" rel="nofollow">http://farukp.com/cpp/Quick.h</a><br />
<a href="http://farukp.com/cpp/quicksort.cpp" rel="nofollow">http://farukp.com/cpp/quicksort.cpp</a></p>
<p>Ich bin durchaus dankbar für jede hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061176</guid><dc:creator><![CDATA[apfelkuchen]]></dc:creator><pubDate>Fri, 19 May 2006 17:55:33 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort ins Template on Fri, 19 May 2006 18:37:22 GMT]]></title><description><![CDATA[<p>ich habe mal nach altem code geguckt und siehe da ich hab das auch mal gemacht und sogar mit template<br />
naja jedenfalls biste dir sicher, dass du das geschrieben hast, die kommentare sind jedenfalls untypisch für einen deutschen studenten</p>
<p>naja ich hoffe es funktioniert</p>
<pre><code class="language-cpp">#include &quot;StdAfx.h&quot;

template&lt;class T&gt;

class CQuick_Sort {

public:

	CQuick_Sort(vector&lt;T&gt; v)
	{		
		m_vector = v;
	};

	~CQuick_Sort(void){};

	vector&lt;T&gt; output(void)
	{
	sortieren(0 ,m_vector.size()-1);

	/*for(unsigned int i = 0; i &lt; m_vector.size(); i++)
	{
	cout &lt;&lt; m_vector.at(i)&lt;&lt;endl;
	}*/
	return m_vector;

	}

private:	void sortieren( int pli, int pre)
	{
		int testwert = 0;

		int li = pli;
		int re = pre;

		testwert  
			=(m_vector.at(pli) + m_vector.at(pre)) /2;

		while(li &lt;= re)
		{
			while(m_vector.at(li) &lt; testwert)
			{
				li +=1;
			}
			while(m_vector.at(re)&gt; testwert)
			{
				re -=1;

			}
			if(li &lt;= re)
			{

/*
				T temp = m_vector.at(li);
				m_vector.at(li) = m_vector.at(re);
				m_vector.at(re) = temp;
*/
				T temp = m_vector[li];
				m_vector[li] = m_vector[re];
				m_vector[re] = temp;

				li +=1;
				re -=1;

			}
		}
		if(pli&lt; re)
		{
			sortieren(pli, re);
		}

		if(li &lt; pre)
		{
			sortieren(li, pre);
		}

	}
private:

	vector&lt;T&gt; m_vector;

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1061204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061204</guid><dc:creator><![CDATA[golden_jubilee]]></dc:creator><pubDate>Fri, 19 May 2006 18:37:22 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort ins Template on Fri, 19 May 2006 20:03:00 GMT]]></title><description><![CDATA[<p>steff3, bist Du sicher, daß der Code korrekt ist? Der sieht mir ziemlich labil aus.</p>
<p>Was macht er aus folgendem Array: {100000,3,2,1,0}?</p>
<p>Im ersten Durchlauf mir wird die 0 mit der 100000 vertauscht. Im zweiten Durchlauf dann wir li so lange weiter erhöht, wie m_vector.at(li) &lt; testwert gilt. Und das gilt ab dann immer. Er läuft also über's Ende raus, es fliegt ne Exception beim at und das Array ist nicht sortiert.</p>
<p>Übersehe ich jetzt grad was wichtiges? Ich hab grad keine Lust das zu testen, aber für micht sieht das Teil falsch aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061251</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Fri, 19 May 2006 20:03:00 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort ins Template on Fri, 19 May 2006 20:43:03 GMT]]></title><description><![CDATA[<p>keine ahnung ob das stimmt, der code ist alt, hat aber damals scheinbar funktioniert - vlt nur für bestimmte werte <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/1061280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061280</guid><dc:creator><![CDATA[golden_jubilee]]></dc:creator><pubDate>Fri, 19 May 2006 20:43:03 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort ins Template on Sat, 20 May 2006 14:04:44 GMT]]></title><description><![CDATA[<p>steff3 schrieb:</p>
<blockquote>
<p>ich habe mal nach altem code geguckt und siehe da ich hab das auch mal gemacht und sogar mit template<br />
naja jedenfalls biste dir sicher, dass du das geschrieben hast, die kommentare sind jedenfalls untypisch für einen deutschen studenten</p>
<p>naja ich hoffe es funktioniert</p>
<pre><code class="language-cpp">#include &quot;StdAfx.h&quot;

template&lt;class T&gt;

class CQuick_Sort {

public:

	CQuick_Sort(vector&lt;T&gt; v)
	{		
		m_vector = v;
	};

	~CQuick_Sort(void){};

	vector&lt;T&gt; output(void)
	{
	sortieren(0 ,m_vector.size()-1);

	/*for(unsigned int i = 0; i &lt; m_vector.size(); i++)
	{
	cout &lt;&lt; m_vector.at(i)&lt;&lt;endl;
	}*/
	return m_vector;

	}

private:	void sortieren( int pli, int pre)
	{
		int testwert = 0;

		int li = pli;
		int re = pre;

		testwert  
			=(m_vector.at(pli) + m_vector.at(pre)) /2;

		while(li &lt;= re)
		{
			while(m_vector.at(li) &lt; testwert)
			{
				li +=1;
			}
			while(m_vector.at(re)&gt; testwert)
			{
				re -=1;

			}
			if(li &lt;= re)
			{

/*
				T temp = m_vector.at(li);
				m_vector.at(li) = m_vector.at(re);
				m_vector.at(re) = temp;
*/
				T temp = m_vector[li];
				m_vector[li] = m_vector[re];
				m_vector[re] = temp;

				li +=1;
				re -=1;

			}
		}
		if(pli&lt; re)
		{
			sortieren(pli, re);
		}

		if(li &lt; pre)
		{
			sortieren(li, pre);
		}

	}
private:

	vector&lt;T&gt; m_vector;

};
</code></pre>
</blockquote>
<p>Hallo Steff3. Bei meinem Kollegen in der Gruppe handelt es sich nicht um einen Deutschen Studenten. Wir machen das zu Zweit. Was die Kommentare heissen sollen, kann ich immer nachfragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061634</guid><dc:creator><![CDATA[apfelkuchen]]></dc:creator><pubDate>Sat, 20 May 2006 14:04:44 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort ins Template on Mon, 22 May 2006 05:08:46 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Kann mir jemand vielleicht sagen wo ich anfangen könnte?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062452</guid><dc:creator><![CDATA[apfelkuchen]]></dc:creator><pubDate>Mon, 22 May 2006 05:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Quicksort ins Template on Mon, 22 May 2006 09:10:23 GMT]]></title><description><![CDATA[<p>Als erstes kannst du deine Funktion so entwickeln, daß sie mit int-Werten arbeitet:</p>
<pre><code class="language-cpp">void quicksort(int* start, int* ende)
{
  ...
  //sortiere alle Elemente im Bereich [start,ende[
}
</code></pre>
<p>Um diese Funktion für beliebige Datentypen verwenden zu können, passt du die Parametertypen und verwendeten Hilfsvariablen geeignet an:</p>
<pre><code class="language-cpp">template&lt;typename It&gt;
void quicksort(It start, It ende)
{
  typedef typename iterator_traits&lt;It&gt;::value_type;

  ...
  //Sortierung wie oben
  /*Ersetze verwendete Typen:
    int* -&gt; It
    int  -&gt; value_type (außer bei Zählvariablen)
  */
}
</code></pre>
<p>(und anschließend müsstest du nur darauf achten, daß die benötigten Operationen unterstützt werden)</p>
<p>PS: Zum Vertauschen von Werten bietet sich &quot;std::swap()&quot; an, das ist mitunter schneller als &quot;tmp=x;x=y;x=tmp;&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062580</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 22 May 2006 09:10:23 GMT</pubDate></item></channel></rss>