QuickSort i StackOverFlow Exception

0

Witam.
Napisałem sobie ostatnio program sortujący pewne liczby używając sortowania quicksort. Niestety dla większej ilości liczb program zgłasza wyjątek StackOverFlow i nie wiem czym to jest spowodowane. Oto mój kod:

 
static void Main(string[] args)
{
	int[] array = new int[10000];

	for (int i = 0; i < args.Length; i++)
	{
		var random = new Random();
		array[i] = random.Next(0, 100);
	}

	QuickSort(array, 0, array.Length - 1);

	Console.Read();
}

public static void QuickSort(int[] array, int left, int right)
{
	var i = left;
	var j = right;
	var pivot = array[(left + right) / 2];
	while (i < j)
	{
		while (array[i] < pivot) i++;
		while (array[j] > pivot) j--;
		if (i <= j)
		{
			var tmp = array[i];
			array[i++] = array[j];
			array[j--] = tmp;
		}
		if (left < j) QuickSort(array, left, j);
		if (i < right) QuickSort(array, i, right);
	}
}
1

Przede wszystkim dwa ostatnie ify powinny być poza pętlą while.

0

No właśnie, że tego nie zauważyłem. Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1