nicht der euler sonder heuler: Geb mich geschlagen!!! C++ QuickSort

Guten Tag an alle,

also ich geb mich jetzt echt mal geschlagen, ich kriegs net auf die Reihe.

Ich finde den Fehler in meinem Quelltext nicht. Er overflwot immer meinen Stack und ich hab echt keine Ahnung warum. Beim einzeldurchlauf von der Funktion Partition bekomm ich einen vernünftigen Wert, wenn ich es aber in Verbindung mit der QuickSort function laufen lasse gehen meine Variablen in den Keller, sprich seh werden endloch ins Negative, warum kein Peil!!!

Wenn mir hier keiner Helfen kann geb ich mich fürs erste geschlagen... Hoffe jemand kann mir Helfen.

int funcPartition(int aArray[], int nLeft, int nRight)
{
int nTemp;
int nL = nLeft;
int nR = nRight--;
int nPivot=aArray[nLeft];

while (nL<nR)  
{  
	while(aArray[nL]>nPivot && nL<=nR)  
	{  
		nL++;  
	}  

	while(aArray[nR]<nPivot && nR>=nL)  
	{  
		nR--;  
	}  

	if (nL<nR)  
	{  
		nTemp=aArray[nL];  
		aArray[nL]=aArray[nR];  
		aArray[nR]=nTemp;  

		nL++;  
		nR--;  
	}  
}  
return nL;  

}//END_funcPartition()

void funcQuickSort(int aArray[], int nLeft, int nRight)
{
int nIndex;
if (nRight>nLeft)
{
nIndex = funcPartition(aArray, nLeft, nRight);
nIndex=nIndex-1;
funcQuickSort(aArray, nLeft, nIndex);
nIndex=nIndex+2;
funcQuickSort(aArray, nIndex, nRight);
}
}//END_funcQuickSort()

//Grad ausm Kopf geschrieben kann evtl. Fehlerhaft sein also die main()
int main(void)
{
 int aBla[6]={1,8,5,33,2,28};

funcQuickSort(aBla, 0, 6);

}//End_main()

  1. Hello,

    und Du hast das schon mal mit der Lösung auf Wikipedia verglichen?
    http://de.wikipedia.org/wiki/Quicksort

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Hallo zusammen,

    weil's gerade passt: Sortieralgorithmen getanzt.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates