Java 如何修复方法无法应用于给定类型
我正在创建一个程序来进行二进制搜索 这个方法应该重复不同的次数,我想打印出重复这个方法所花的时间 他们的方式代码是现在我得到一个错误,而编译方法二进制搜索无法编译为给定的类型,我不知道如何修复它Java 如何修复方法无法应用于给定类型,java,arrays,Java,Arrays,我正在创建一个程序来进行二进制搜索 这个方法应该重复不同的次数,我想打印出重复这个方法所花的时间 他们的方式代码是现在我得到一个错误,而编译方法二进制搜索无法编译为给定的类型,我不知道如何修复它 public class Bin_search { public static void main(String[] args) { int z = Integer.parseInt(args[0]); double k = (int)(Math.random(
public class Bin_search {
public static void main(String[] args) {
int z = Integer.parseInt(args[0]);
double k = (int)(Math.random()*1000001);
int n = 1000000;
int arr[] = new int[n];
int i = 0;
for(i = 0;i<n;i++){
arr[i] = i;
}
long startTime = System.currentTimeMillis();
for(int t= 0; t<z; t++) {
binarySearch();
}
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
System.out.println("It took " + elapsedTime + " ms to repeat the algorithm.");
}
int binarySearch(int n, double k, int arr[]) {
int li = 0;
int re = n+1;
int m;
while (li < re-1) {
m = (li + re) / 2;
if (k <=arr[m]){
re = m;
}
else{
li = m;
}
}
return re;
}
}
公共类Bin\u搜索{
公共静态void main(字符串[]args){
intz=Integer.parseInt(args[0]);
双k=(int)(Math.random()*1000001);
int n=1000000;
int arr[]=新的int[n];
int i=0;
对于(i=0;i首先,binarySearch方法由三个参数组成,并且您没有提供它们,其次,您应该将binarySearch方法设置为静态,否则在不首先创建实例的情况下,无法从主方法调用它
我想应该是这样的
public class Main {
public static void main(String[] args) {
args = new String[3];
args[0] = "100";
int z = Integer.parseInt(args[0]);
double k = (int)(Math.random() * 1000001);
int n = 1000000;
int arr[] = new int[n];
int i = 0;
for(i = 0;i<n;i++){
arr[i] = i;
}
long startTime = System.currentTimeMillis();
for(int t= 0; t<z; t++) {
binarySearch(n, k, arr);
}
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
System.out.println("It took " + elapsedTime + " ms to repeat the algorithm.");
}
static int binarySearch(int n, double k, int arr[]) {
int li = 0;
int re = n+1;
int m;
while (li < re-1) {
m = (li + re) / 2;
if (k <=arr[m]){
re = m;
}
else{
li = m;
}
}
return re;
}
}
公共类主{
公共静态void main(字符串[]args){
args=新字符串[3];
args[0]=“100”;
intz=Integer.parseInt(args[0]);
双k=(int)(Math.random()*1000001);
int n=1000000;
int arr[]=新的int[n];
int i=0;
对于(i=0;i请,发布你的StackTrace我现在可以编译它,但是当我想尝试代码时,我得到的错误是找不到或加载main类。我也用你的代码尝试过,得到了相同的eror。发生这种情况是因为我已将你的类从Binu search重命名为main,只需再次更改它,它就会工作。不,这与它无关,我只是无法更改。)将java“程序”从1秒卸载到另一秒。我想说,错误引用了安装JDK时必须设置的系统变量。尽管它们设置正确。一天后,我随机重新开始工作。现在我需要运行java“程序”在使用java classname.java的编译器中,它不是它应该的样子,但我很高兴它至少又能工作了。