我的作业有点问题,如果我能得到一个,我想解释一下。
目前我在一个数据结构类中,正在做一个修改后的 BinarySearch 的分配,它将找到一对数字来找到最左边的数字和最右边的数字,如果有多个,并打印出位置。我现在遇到的一个大问题是老师希望我们使用 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,示例 int x 是 10。我认为这将类似于我最近在定义类(对)的地方所做的 LinkedList 分配然后你设置并获取带有数据的整数。我原来有:
private class Pair(int data){
this.data = data;
}
但我不确定为什么这不会像我想要的那样工作。无论如何,这是我的问题,任何有助于理解这一点的帮助将不胜感激