0
我的任务是创建一个由findMin
方法协助的选择排序方法(按升序排列元素)。在findMin方法的帮助下创建选择排序方法
我的问题在于,我不确定我应该在选择排序方法中将findMin
方法称为哪里。此外,我怀疑我是否根据评论中的要求正确执行了findMin
方法。
public class idk{
// find the minimun valued element
// range [start, ar.length - 1]
// int indexOfMin= -1; this is incorrect!!!
// return indexOfMin;
public static int findMin(int [] ar, int start)
{
int minValue = ar[0];
for (int i = start; i < ar.length; i++) {
if (ar[i] < minValue)
minValue = ar[i];
}
return minValue;
}
public static void swap(int[] list, int a , int b){
int temp = list[a];
list[a] = list[b];
list[b] = temp;
}
// 1) make a new array, copy the values from arr
// into it and THEN sort res
// 2) implement and use in this method
// the findMin helper method defined above
public static int [] selSort(int[] arr)
{
int [] res= new int[arr.length];
for (int i = 0; i < arr.length; i++)
res[i] = arr[i];
int min = res.length;
for (int x =0; x < res.length; x++){
min = x;
for (int y = x + 1; y < res.length;y++){
if (res[y] < res[min])
min = y;
}
swap (res,x, min);
}
return res;
}
}