【发布时间】:2017-04-13 01:36:44
【问题描述】:
我已经完成了使用递归(不允许循环)来实现选择排序算法的作业。我已经为此工作了好几天,但我无法弄清楚 我所做的只是:
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;
}
我怎样才能让第一个方法尽可能多地运行,直到数组被排序?
谢谢你们!
【问题讨论】:
-
提示:如果您在原始实现中有嵌套循环,那么在递归版本中您可能需要两个递归,而不仅仅是一个。