我已经完成了通过使用递归实现选择排序算法的作业(不允许循环)。我已经工作了几天,但我无法弄明白 我所做的就是:
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;
}
如何使第一个方法尽可能多地运行,直到数组被排序?
谢谢你们!答案 0 :(得分:0)
找到最小元素并将其填入第一个数组位置后,您需要重复使用数组的 rest 。增加 firstIndex 并重复,直到数组中只剩下一个元素。
这足以让你感动吗?