public class binarySearch { public int binSearch(int[] arr, int fIndex, int lIndex,int search) { int middle = (fIndex + (lIndex - fIndex) / 2); if(fIndex<lIndex ){ if (search == arr[middle]){ return middle; } else if(search < arr[middle]){ if(search == arr[0]) return 0; return binSearch(arr, fIndex, middle, search); } else if(search > arr[middle]){ if(search == arr[middle+1]) return middle + 1; return binSearch(arr, middle+1, lIndex, search); } } return -1; } public void sort(int[] arr) { for(int i=0; i<arr.length; i++) { for(int j=i+1; j<arr.length; j++ ) { if(arr[i] > arr[j]) { int temp = arr[j]; arr[j]=arr[i]; arr[i]= temp; } } } for(int i=0; i<arr.length; i++) { System.out.print(arr[i] + " "); } } } //main class import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter the size of the array: "); int n = input.nextInt(); int[] x = new int[n]; System.out.print("Enter "+ n +" numbers: "); int middle; for(int i=0; i<n; i++) { x[i] = input.nextInt(); } binarySearch access = new binarySearch(); System.out.println("The sorted numbers are: "); access.sort(x); System.out.println(); System.out.print("Enter the number you want to search: "); int value = input.nextInt(); System.out.print("The search number is on the index "); System.out.print(access.binSearch(x, 0, x.length-1, value)); } }
0 comments:
Post a Comment