java.lang.NoSuchMethodError: main
Exception in thread "main"
这是学习一维数组时出现的问题,代码如下:
//逐步实现二分查找法,出错
public class Study2{
// public static void main(String[] args){
public static int binarySearch(int[] list,int key){
int low = 0;
int high = list.length - 1;
while(high >= low){
int mid = (low + high) / 2;
if (key < list[mid])
high = mid - 1;
else if (key == list[mid])
return mid;
else
low = mid + 1;
}
return - low - 1;
}}
首先,你为什么把main函数注释掉呢?其次,二分查找只能针对有序数组进行的。
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static int binarySearch(int[] list,int key){
int low = 0;
int high = list.length - 1;
while(high >= low){
int mid = (low + high) / 2;
if (key < list[mid])
{
high = mid - 1;
}
else
{
if (key == list[mid])
return mid;
else
low = mid + 1;
}
}
return - 1;
}
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
int[] list = {1,2,4,7,9,11};
int x = binarySearch(list, 7);
System.out.println(x);
}
}
你的代码没有大问题。稍微修改运行了下,可以的。
因为你把入口方法main给注释掉了!
这样子调用运行
public static void main(String[] args){
binarySearch(。。)
}
你得把main函数的注释去掉。
否则程序找不到入口函数,
自然就报错了。