我有一个关于作业的小问题,如果可以的话,希望能得到一些解释。
目前,我正在学习数据结构课程,并且正在完成一个任务,该任务将执行修改后的二分查找,以查找一对数字以找到最左边的数字和最右边的数字(如果有多个),并打印出它们的位置。我现在遇到的大问题是老师希望我们使用一个Pair类来返回这两个整数。我已经在主文件中创建了Pair类,想知道我做错了什么,希望有人能指点我正确的方向。我不是要答案,只是想得到一些帮助,理解我需要做什么以及为什么。以下是我目前的代码:
import java.util.*;
import java.io.*;
public class Test_BinarySearchDup{
private class Pair{
public int left;
public int right;
}
public static void main(String[] args) throws IOException{
String file = args[0];
int x = Integer.parseInt(args[1]);
Scanner fin = new Scanner(new FileReader(file));
int count = 0;
while(fin.hasNext()){
fin.nextInt();
count++;
}
fin.close();
int[] array = new int[count];
fin = new Scanner(new FileReader(file));
while(fin.hasNext()){
for(int i = 0; i < array.length; i++){
array[i] = fin.nextInt();
}
}
fin.close();
BinarySearchDup(array, x);
}
public static Pair BinarySearchDup(int[] A, int x){
int low = 0, high = A.length - 1, mid = (low + high) / 2;
while(low <= high){
mid = (low + high) / 2;
if(A[mid] == x)
return Pair(mid);
else if(A[mid] < x)
low = mid + 1;
else
high = mid - 1;
}
}
}
我通过命令行发送参数,所以文件名为"data.txt",示例整数"x"为10。我原本以为这会像我最近完成的LinkedList作业一样,你定义了类(Pair),然后使用数据设置和获取整数。最开始我的写法是:
private class Pair(int data){
this.data = data;
}
但我不确定为什么它不能按照我的预期工作。无论如何这就是我的问题,任何有助于理解的帮助都将非常感激。