我正在寻找为数组实现排序算法(无论哪个),而不使用任何循环(递归)和就地(不使用任何帮助数组)。 请注意:我需要一个严格的无循环,没有帮助数组代码。这样的事情是否存在?
我尝试构建此方法:
private static void sort(int [] a, int low, int high,int length)
{
if(low>length)
return;
else if(low<=length)
{
if(high<a.length-low-1)
{
if(a[high]>a[high+1])
{
int temp=a[high];
a[high]=a[high+1];
a[high+1]=temp;
}
else
{
high=0;
low++;
}
}
sort(a,low,high+1,length);
}
}
从main调用sort(a,0,0,a.length),我一直得到null \ infinite recursion。非常感谢您的帮助。
不关心复杂性。
谢谢!
答案 0 :(得分:0)
没有帮助数组我不确定,但这是一种无循环排序的方法
public static Result[] sort(Result[] array)
{
int lastElement = array.length - markpass;
int largePos = findLargestMark(array, array.length - markpass);
if (largePos != array.length - markpass)
{
Result temp = array[largePos];
array[largePos] = array[lastElement];
array[lastElement] = temp;
}
markpass++;
if (markpass != array.length)
{
sort(array);
}
else
{
return array;
}
return array;
}