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);
}
}