Untitled
unknown
java
2 years ago
2.7 kB
5
Indexable
import java.util.Arrays; import java.util.Scanner; public class Binary { private static void TitleBinarySearch() { String line = "\n=================================================="; String title = "B I N A R Y S O R T"; int length = (line.length() + title.length()) / 2; String centeredTitle = String.format("%" + length + "s", title).replace(' ', ' '); centeredTitle = String.format("%-" + length + "s", centeredTitle); // left align System.out.println(line + "\n" + centeredTitle + line); } public void displayBinary() { TitleBinarySearch(); Scanner sc = new Scanner(System.in); System.out.print("Please Enter the Array Size: "); int n; n = sc.nextInt(); int[] ray = new int[n]; System.out.print("\nPlease Enter the Elements of the Array: "); for (int i = 0; i < n; i++) { ray[i] = sc.nextInt(); } Arrays.sort(ray); System.out.println("\nSorted array:" + Arrays.toString(ray)); System.out.print("\nPlease Enter the Key Value to be Searched: "); int z; z = sc.nextInt(); int high = ray.length - 1; int result; result = BinarySearch(ray, z, 0, high); System.out.println("The Element is found at index " + result); } public static int BinarySearch(int[] ray, int z, int low, int high) { while (low <= high) { //int mid = low + (high - low) / 2; int mid = (low + high) / 2; System.out.println("Searching...."); System.out.print("[ "); for(int i = 0; i < ray.length; i++){ if(ray[i] == ray[mid]){ System.out.print("(" + ray[mid] + "), "); } else if(i == ray.length - 1) { System.out.print(ray[i] + " "); } else{ System.out.print(ray[i] + ", "); } } System.out.println("]"); System.out.println("Middle = " + ray[mid]); System.out.println("Left = " + ray[low]); System.out.println("Right = " + ray[high]); System.out.println("\n"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } if (ray[mid] == z) { return mid; } if (ray[mid] < z) { low = mid + 1; } if (ray[mid] > z) { high = mid - 1; } } return low; } }
Editor is loading...