gpt4 book ai didi

java - 当我实现快速排序方法时堆栈溢出

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:42 25 4
gpt4 key购买 nike

您好,我正在尝试在 Java 中实现快速排序方法,但由于某种原因,当我只处理 5 个元素时出现堆栈溢出错误!任何想法可能是错的?我的部分代码:

class QuickSort implements AbstractSort {
public int partition(int[] numbers, int start, int end)
{
int pivot = numbers[end];
int theIndex = start;
int temp;
for(int i = start; i <= end - 1; i++)
{
if(numbers[i] <= pivot)
{
temp = numbers[theIndex];
numbers[theIndex] = numbers[i];
numbers[i] = temp;
theIndex++;
}
}
temp = numbers[theIndex];
numbers[theIndex] = pivot;
numbers[end] = temp;
return theIndex;
}

public void mySort(int[] numbers, int start, int end)
{
if(start < end)
{
int myIndex = partition(numbers, start, end);

mySort(numbers, 0, myIndex-1);
mySort(numbers, myIndex + 1, numbers.length - 1);
}
else
{
return;
}
}
public void sort(int[] numbers)
{
mySort(numbers, 0, numbers.length - 1);
}
}

最佳答案

问题出在 mySort(numbers, 0, myIndex-1); 我应该把 start 而不是 0,所以正确的代码看起来像这样 mySort(numbers, start , myIndex-1);

关于java - 当我实现快速排序方法时堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33794299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com