选择仅按递归排序

时间:2017-04-12 16:05:36

标签: java recursion

我已经完成了通过使用递归实现选择排序算法的作业(不允许循环)。我已经工作了几天,但我无法弄明白 我所做的就是:

public void Sort(int[] a){
    int firstIndex=0,searchIndex=firstIndex+1,minIndex=firstIndex;
    swap(a, firstIndex, findMinIndex(a, searchIndex, minIndex));    
    }


private int findMinIndex(int[] a,int searchIndex,int minIndex){
    if(searchIndex<a.length){
        if(a[searchIndex]<a[minIndex])
            minIndex=searchIndex;
        return findMinIndex(a,searchIndex+1,minIndex);
    }
    return minIndex;            

}

private void swap(int arr[],int firstIndex,int secondIndex){
    int temp=arr[firstIndex];
    arr[firstIndex]=arr[secondIndex];
    arr[secondIndex]=temp;
}

如何使第一个方法尽可能多地运行,直到数组被排序?

谢谢你们!

1 个答案:

答案 0 :(得分:0)

找到最小元素并将其填入第一个数组位置后,您需要重复使用数组的 rest 。增加 firstIndex 并重复,直到数组中只剩下一个元素。

这足以让你感动吗?