Binair zoeken wordt gebruikt om een ​​sleutelelement uit meerdere elementen te zoeken. Binair zoeken is sneller dan lineair zoeken.
nfa naar dfa
Bij binair zoeken moeten de array-elementen in oplopende volgorde staan. Als u een ongesorteerde array heeft, kunt u de array sorteren met behulp van Arrays.sort(arr) methode.
Binair zoekvoorbeeld in Java
Laten we een voorbeeld bekijken van binair zoeken in Java.
class BinarySearchExample{ public static void binarySearch(int arr[], int first, int last, int key){ int mid = (first + last)/2; while( first <= last ){ if ( arr[mid] system.out.println('element is not found!'); } public static void main(string args[]){ int arr[]="{10,20,30,40,50};" key="30;" binarysearch(arr,0,last,key); < pre> <span> Test it Now </span> <p>Output:</p> <pre> Element is found at index: 2 </pre> <h2>Binary Search Example in Java using Recursion</h2> <p>Let's see an example of binary search in java where we are going to search an element from an array using recursion.</p> <pre> class BinarySearchExample1{ public static int binarySearch(int arr[], int first, int last, int key){ if (last>=first){ int mid = first + (last - first)/2; if (arr[mid] == key){ return mid; } if (arr[mid] > key){ return binarySearch(arr, first, mid-1, key);//search in left subarray }else{ return binarySearch(arr, mid+1, last, key);//search in right subarray } } return -1; } public static void main(String args[]){ int arr[] = {10,20,30,40,50}; int key = 30; int last=arr.length-1; int result = binarySearch(arr,0,last,key); if (result == -1) System.out.println('Element is not found!'); else System.out.println('Element is found at index: '+result); } } </pre> <span> Test it Now </span> <p>Output:</p> <pre> Element is found at index: 2 </pre> <h2>Binary Search Example in Java using Arrays.binarySearch()</h2> <pre> import java.util.Arrays; class BinarySearchExample2{ public static void main(String args[]){ int arr[] = {10,20,30,40,50}; int key = 30; int result = Arrays.binarySearch(arr,key); if (result <0) system.out.println('element is not found!'); else found at index: '+result); } < pre> <span> Test it Now </span> <p>Output:</p> <pre> Element is found at index: 2 </pre></0)></pre></=>
Binair zoekvoorbeeld in Java met behulp van recursie
Laten we een voorbeeld bekijken van binair zoeken in Java, waarbij we een element uit een array gaan zoeken met behulp van recursie.
class BinarySearchExample1{ public static int binarySearch(int arr[], int first, int last, int key){ if (last>=first){ int mid = first + (last - first)/2; if (arr[mid] == key){ return mid; } if (arr[mid] > key){ return binarySearch(arr, first, mid-1, key);//search in left subarray }else{ return binarySearch(arr, mid+1, last, key);//search in right subarray } } return -1; } public static void main(String args[]){ int arr[] = {10,20,30,40,50}; int key = 30; int last=arr.length-1; int result = binarySearch(arr,0,last,key); if (result == -1) System.out.println('Element is not found!'); else System.out.println('Element is found at index: '+result); } }Test het nu
Uitgang:
Element is found at index: 2
Voorbeeld van binair zoeken in Java met Arrays.binarySearch()
import java.util.Arrays; class BinarySearchExample2{ public static void main(String args[]){ int arr[] = {10,20,30,40,50}; int key = 30; int result = Arrays.binarySearch(arr,key); if (result <0) system.out.println(\'element is not found!\'); else found at index: \'+result); } < pre> <span> Test it Now </span> <p>Output:</p> <pre> Element is found at index: 2 </pre></0)>0)>=>