我有这个快速排序实现,使用左边作为其轴,当传递一个10240随机数的数组时,它给出了一个例外。当传递1024个随机数的数组时,它会正常排序我的数组而不会产生异常。
System.StackOverflowException未处理HResult = -2147023895
Message =抛出了类型'System.StackOverflowException'的异常。 的InnerException:
Array (
0 = > array('a1', 'a11', 'a111'),
1 = > array('b1', 'ba11', 'b111'),
2 = > array('c1', 'c11', 'c111'),
)
主程序
public int[] SortQuick(int[] arr, int left, int right)
{
if (left < right)
{
int pivot = Partition(arr, left, right);
if (pivot > 1)
SortQuick(arr, left, pivot - 1);
if (pivot + 1 < right)
SortQuick(arr, pivot + 1, right);
}
return arr;
}
public int Partition(int[] numbers, int left, int right)
{
int pivot = numbers[left];
while (true)
{
while (numbers[left] < pivot)
left++;
{
while (numbers[right] > pivot)
right--;
if (left < right)
{
int temp = numbers[right];
numbers[right] = numbers[left];
numbers[left] = temp;
}
else
{
return right;
}
}
}
}
aGen是一个生成随机数的类。