我正在尝试为链表创建排序算法的堆栈溢出异常。在那里,我的排序无限期地停留在同一个枢轴上,我无法弄清楚为什么它没有达到基本情况。
// Intlist是一个简单的单链表,带有一个int var“.item”和一个.next指针
pivotS(Intlist thisList){
if (thisList == null || thisList.next == null){
return thisList;
} else{
int pivot = thisList.item;
Intlist lower = lowerThanPivot(pivot, thisList);
Intlist upper = greaterOrEqualPivot(pivot, thisList);
lower = pivotS(lower);
upper = pivotS(upper);
return appendLists(lower, upper);
}
}
这应该与构造中的Merge Sort类似,对吧?我的个人功能似乎工作得很好。我只是设置错误的递归吗?