2014-01-06 88 views
0
import java.util.Scanner; 
    class BinarySearch 
    { 
     public static void main(String s[]) 
     { 
     int a[] ,n ,i, c, lb=0, ub, mid, item; 
     Scanner in=new Scanner(System.in); 
     System.out.println("Enter size of array : "); 
     n=in.nextInt(); 
     a=new int[n]; 
     ub=n-1; 
     for(i=0; i<n ;i++) 
     { 
     c=i; 
     System.out.println("enter"+ c++ +"th element of array :"); 
     a[i]=in.nextInt(); 
     } 
     for(i=0; i<n ;i++) 
     { 
     c=i; 
     System.out.println(c++ +"th element of array is :"+a[i]); 
     } 
     System.out.print("Enter item which is to be searched from array : "); 
     item=in.nextInt(); 
     mid=(lb+ub)/2; 
     while((lb<=ub)&&(a[mid]!=item)) 
      { 
      if(item<a[mid]) 
     ub=mid-1; 
      else 
     lb=mid+1; 
      } 
     if(a[mid]==item) 
     System.out.println(item+ "found at "+ mid+"th location"); 
     else 
     System.out.println(item+ "not exist in this aaray");  
     } 
    } 

这是二进制搜索的阵列
此代码给名为NoClassDefFoundError的一个异常的方案。 主要方法没有发现异常存在。 请帮我解决这个例外异常在线程“主要” java.lang.NoClassDefFoundError:

+0

搞笑..甚至我认为同样的,但它在我的日食工作现在..我已经没有将BinarySearch声明为public – TheLostMind

回答

2
  • 文件的名称应该是BinarySearch.java
  • 您应该使用javac BinarySearch.java进行编译。
  • 使用java BinarySearch
+0

它确实是一个分离的类。 – user3164727

+3

您可以运行没有“公共”范围的课程。所以第一点并不重要。 – solvator

+0

@solvator,谢谢你,与文件命名限制和编译规则混淆。根据你的建议编辑。 –

-1

没有包语句,你在哪里运行Java命令启动?它无法找到该课程。

+0

如果你没有包装,为什么还需要包装? – DnR

0

你的类应该是类文件的相同名称。像: 如果你的类文件的名称是

BinarySearch.java 

那么该类应该被命名为

public class BinarySearch 
+2

这并不重要,为什么人们说它必须是公开的?它可以只是'类BinarySearch',你可以运行该文件,它的工作原理。 – solvator

+0

我试着说类名应该是相同的类文件名。并不是说它不能与公众合作:) – Salah

+0

名称也不重要。例如,我创建了Example.java文件,并用'ExampleNew'或其他任何你想要的内容代替了类,它也可以工作。 ;) – solvator

相关问题