2014-01-06 139 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

相關問題