二进制搜索功能未实现

Binary Search function is not getting implemented

代码的所有其他部分都在执行,但问题出现在执行二进制 search.The 算法时,我做的是正确的,但它总是给我相反的结果 answer.I 不要'了解代码中发生的事情。 即使当我执行程序并告诉代码搜索数组中存在的元素时。线性搜索给了我正确的答案,即元素存在,但是当它进入二进制搜索时,它说元素不存在。

import java.util.*;
public class VOperations {
 
    int n,first,last;
    
     
    
    void intializer(int Arr[]){
        n=Arr.length;
        

     }

     void show(int Arr[])
     {
         
         for (int i=0; i<n; ++i)
             System.out.print(Arr[i] + " ");
         System.out.println();
     }
    
     void linearSearch(int s,int Arr[]){
        int c =0;
        for(int i=0;i<n;i++){
            if(Arr[i]==s){
                c++;
            }
        }
        if(c==1)
        System.out.println("Element found");
        else
        System.out.println("Not found");

    }
   
   
    int binSearch(int Arr[], int x)
    {
        int l = 0, r = Arr.length - 1;
        while (l <= r) {
            int m = l + (r - l) / 2;
  
            
            if (Arr[m] == x)
                return m;
  
           
            if (Arr[m] < x)
                l = m + 1;
  
           
            else
                r = m - 1;
        }
  
       
        return -1;
    }

      void bubbleSort(int Arr[])
      {
          int n = Arr.length;
          for (int i = 0; i < n-1; i++)
              for (int j = 0; j < n-i-1; j++)
                  if (Arr[j] > Arr[j+1])
                  {
                      
                      int temp = Arr[j];
                      Arr[j] = Arr[j+1];
                      Arr[j+1] = temp;
                  }
         
          show(Arr);        
      }
}
class Test3{
    public static void main(String args[]){
        VOperations ob=new VOperations();
        Scanner sc=new Scanner(System.in);

        System.out.println("Enter the number you want to search :");
        int x = sc.nextInt();
        int Arr[] = { 11,6,77,8,5,44,6,9,442,86,73,49,68,82 };


        ob.intializer(Arr);
        ob.show(Arr);
        int result = ob.binSearch(Arr, x);
        if (result == -1)
            System.out.println("Element not present");
        else
            System.out.println("Element found at "
                               + "index " + result);
    
        ob.linearSearch(x, Arr);
        ob.bubbleSort(Arr);
        sc.close();
    }
}

二分查找仅适用于已排序的输入。您的数组最初没有按顺序排列,并且您在尝试二分查找时还没有对它进行排序。

线性搜索没有相同的约束。