是否可以在没有任何循环的情况下实现任何排序算法?

时间:2016-01-18 19:22:39

标签: java arrays sorting recursion

我正在寻找为数组实现排序算法(无论哪个),而不使用任何循环(递归)和就地(不使用任何帮助数组)。 请注意:我需要一个严格的无循环,没有帮助数组代码。这样的事情是否存在?

我尝试构建此方法:

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。非常感谢您的帮助。

不关心复杂性。

谢谢!

1 个答案:

答案 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;

}