CodeGym /ื‘ืœื•ื’ Java /Random-HE /ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ื‘-Java: ืื•ืกืคื™ื ืจืงื•ืจืกื™ื‘ื™ื™ื, ืื™ื˜ืจื˜ื™ื‘ื™ื™ื ื•-Java...
John Squirrels
ืจึธืžึธื”
San Francisco

ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ื‘-Java: ืื•ืกืคื™ื ืจืงื•ืจืกื™ื‘ื™ื™ื, ืื™ื˜ืจื˜ื™ื‘ื™ื™ื ื•-Java

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ื—ื™ืคื•ืฉ ืœื™ื ืืจื™ ื‘-Java ืชืžื™ื“ ื”ื™ื” ืฉื™ื˜ืช ื”ื‘ื—ื™ืจื” ืœืžืฆื™ืืช ืืœืžื ื˜ ื‘ืžืขืจืš. ื”ื•ื ืžื—ืคืฉ ื›ืœ ืจื›ื™ื‘ ืฉืœ ื”ืžืขืจืš ื‘ืจืฆืฃ ื•ืงืœ ืžืื•ื“ ืœื™ื™ืฉื•ื. ืขื ื–ืืช, ื”ื—ืกืจื•ื ื•ืช ืฉืœ ื”ื—ื™ืคื•ืฉ ื”ืœื™ื ื™ืืจื™ ื‘ืจื•ืจื™ื ื›ืืฉืจ ื”ืžืขืจืš ื”ืžื“ื•ื‘ืจ ืžื›ื™ืœ ืขืฉืจื•ืช ืืœืคื™ ืืœืžื ื˜ื™ื. ื‘ืžืงืจื™ื ื›ืืœื”, ืฉื™ื˜ืช "ื”ืคืจื“ ื•ื›ื‘ื•ืฉ" ื”ืžื™ื•ืฉืžืช ืขืœ ื™ื“ื™ ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ื”ื™ื ื”ืจื‘ื” ื™ื•ืชืจ ื™ืขื™ืœื” ื•ืขื“ื™ืคื” ืขื‘ื•ืจ ืžืชื›ื ืชื™ื ืขื ืžื—ืฉื‘ื” ืขืœ ืžื•ืจื›ื‘ื•ืช ื–ืžืŸ ื•ืžืจื—ื‘.

ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™

ื‘ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™, ืžืขืจืš ืžื—ื•ืœืง ืฉื•ื‘ ื•ืฉื•ื‘ ืœืฉื ื™ ื—ืฆืื™ื ืขื“ ืœืžืฆื™ืืช ื”ืžืคืชื— (ื”ืืœืžื ื˜ ืฉืžื—ืคืฉื™ื). ื”ื—ืœื•ืงื” ื”ื™ื ื•ื™ืจื˜ื•ืืœื™ืช ื›ืœื•ืžืจ, ืฉืœืžื•ืช ื”ื ืชื•ื ื™ื ื ืฉืžืจืช. ื‘ื›ืœ ืื™ื˜ืจืฆื™ื”, ื”ืขืจืš ื”ืืžืฆืขื™ ืฉืœ ื”ืžืขืจืš ืžืžื•ืงื“. ืื ื”ืขืจืš ืฉื•ื•ื” ืœืžืคืชื— ืฉืื ื• ืžื—ืคืฉื™ื, ื”ืœื•ืœืื” ืื• ื”ืคื•ื ืงืฆื™ื” ื”ืจืงื•ืจืกื™ื‘ื™ืช ืžืกืชื™ื™ืžืช. ืื—ืจืช, ื–ื” ืžืžืฉื™ืš ืœื”ืกืชื•ื‘ื‘. ืื ื”ืขืจืš ื”ืืžืฆืขื™ ื’ื“ื•ืœ ืžื”ืžืคืชื—, ื”ืคื•ื ืงืฆื™ื” ืžืชืžืงื“ืช ื‘ื—ืฆื™ ื”ืจืืฉื•ืŸ ืฉืœ ื”ืžืขืจืš ื•ืœื”ื™ืคืš. ืชื”ืœื™ืš ื–ื” ื—ื•ื–ืจ ืขืœ ืขืฆืžื• ืขื“ ืฉื”ืžืคืชื— ื ืžืฆื ืื• ืฉื”ืžืขืจืš ื›ื•ืœื• ืขื‘ืจ ืื™ื˜ืจืฆื™ื”.ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ื‘-Java: ืื•ืกืคื™ื ืจืงื•ืจืกื™ื‘ื™ื™ื, ืื™ื˜ืจื˜ื™ื‘ื™ื™ื ื•-Java - 1

ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื—ื™ืคื•ืฉ ืœื™ื ื™ืืจื™ ืœื‘ื™ื ืืจื™

ื—ื™ืคื•ืฉ ืœื™ื ืืจื™ ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™
ืžื—ืคืฉ ื‘ืจืฆืฃ ื‘ืžืขืจืš ืžื—ืœืง ืืช ื”ืžืขืจืš ืœืฉื ื™ ื—ืฆืื™ื ืขื“ ืฉื ืžืฆื ื”ืขืจืš
ืขื•ื‘ื“ ืขื ื›ืœ ืžืขืจืš ืขื•ื‘ื“ ืจืง ืขื ืžืขืจื›ื™ื ืžืžื•ื™ื ื™ื
ืžื•ืจื›ื‘ื•ืช ื”ื™ื O(N) ื”ืžื•ืจื›ื‘ื•ืช ื”ื™ื O(log2N)
ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืขืœ ืžืขืจื›ื™ื ืžืžื•ื™ื ื™ื ื•ืœื ืžืžื•ื™ื ื™ื ื ื™ืชืŸ ืœื™ื™ืฉื ืจืง ืขืœ ืžืขืจื›ื™ื ืžืžื•ื™ื ื™ื.
ืคื—ื•ืช ืžื•ืจื›ื‘ ืœื™ื™ืฉื•ื ื™ื•ืชืจ ืžื•ืจื›ื‘ ืœื™ื™ืฉื•ื

ืืœื’ื•ืจื™ืชื ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™

ื”ืืœื’ื•ืจื™ืชื ืฉืœ ื”ื—ื™ืคื•ืฉ ื”ื‘ื™ื ืืจื™ ื ื™ืชืŸ ืœื”ืœืŸ.
  1. ืงื‘ืข ืืช ื”ื ืงื•ื“ื•ืช ื”ืจืืฉื•ื ื•ืช ื•ื”ืื—ืจื•ื ื•ืช ืฉืœ ื”ืžืขืจืš. ื”ื ืงื•ื“ื•ืช ื™ื•ืชืืžื• ื‘ื›ืœ ืื™ื˜ืจืฆื™ื” ืœืคื™ ื”ืžืขืจืš ื•ื”ืžืคืชื— ืฉืžื—ืคืฉื™ื.
  2. ื—ื–ื•ืจ ืขืœ ื”ืžืขืจืš ื•ื”ืฉื•ื•ื” ืืช ื”ืขืจืš ื”ืืžืฆืขื™ ื‘ื™ืŸ ื”ื ืงื•ื“ื” ื”ืจืืฉื•ื ื” ื•ื”ืื—ืจื•ื ื” ื”ื ื•ื›ื—ื™ืช ืฉืœืš. ื‘ืื™ื˜ืจืฆื™ื” ื”ืจืืฉื•ื ื”, ื”ืžืฉืชื ื” ื”ืจืืฉื•ืŸ ื•ื”ืื—ืจื•ืŸ ื™ื”ื™ื• ื–ื”ื™ื ืœืืœื• ื‘ืคื•ืขืœ ื‘ืžืขืจืš.
  3. ืื ื”ืžืคืชื— ื’ื“ื•ืœ ืžื”ืขืจืš ื”ืืžืฆืขื™, ื”ืื™ื ื“ืงืก ืฉืœ ืขืจืš ื–ื” ื™ืื•ื—ืกืŸ ื‘ืžืฉืชื ื” "ื”ืจืืฉื•ืŸ" ื”ื—ื“ืฉ.
  4. ืื ื”ืžืคืชื— ืงื˜ืŸ ืžื”ืขืจืš ื”ืืžืฆืขื™, ื”ืื™ื ื“ืงืก ืฉืœ ืขืจืš ื–ื” ื™ืื•ื—ืกืŸ ื‘ืžืฉืชื ื” 'ืื—ืจื•ืŸ'.
  5. ืžืฆื‘ ื–ื” ื—ื•ื–ืจ ืขืœ ืขืฆืžื• ืขื“ ืฉืื—ื“ ืžืฉื ื™ ื”ืชื ืื™ื ืžืชื’ืฉื:
    • ืžืคืชื— ื ืžืฆื.
    • ื”ืžืขืจืš ื›ื•ืœื• ืขื‘ืจ ืื™ื˜ืจืฆื™ื”.
ื”ืงื•ื“ ืœื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืื™ื˜ืจื˜ื™ื‘ื™ ื•ื’ื ืœื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืจืงื•ืจืกื™ื‘ื™ ื ื™ืชืŸ ืœื”ืœืŸ.

ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืื™ื˜ืจื˜ื™ื‘ื™

ื”ืงื•ื“ ืœื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ื‘ืฉื™ื˜ื” ืื™ื˜ืจื˜ื™ื‘ื™ืช ื ื™ืชืŸ ืœื”ืœืŸ.

import java.util.Scanner;
public class IterativeBinarySearch {
 
    public static void main(String[] args) {
        int arr[] = {1,3,6,8,10};
       
        System.out.println("Enter Number to Search For: ");
        Scanner input = new Scanner (System.in);
       
        int num = input.nextInt();
        int result = BinarySearchIterative(arr,num);
       
        if(result!=-1)
            System.out.println("Value Found at Index #" + result);
        else
            System.out.println("Value Not Found");
    }
 
    public static int BinarySearchIterative(int[] arr, int num){
        //Representing the Start and End Index After Division of Array
        int start = 0;
        int end = arr.length;
 
        //Loop to Iterate Through the Array
        for(int i = 0; iarr[n]){
                start = n;
            }
            //If number to search for is greater than the arr value at index 'n'
            else{
                end = n;
            }
        }
        //If number isn't found, return -1
        return -1;
    }
}

ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืจืงื•ืจืกื™ื‘ื™

ื”ืงื•ื“ ืขื‘ื•ืจ ื‘ื™ื ืืจื™ ื‘ืืžืฆืขื•ืช ืจืงื•ืจืกื™ื” ื ื™ืชืŸ ืœื”ืœืŸ.

import java.util.Scanner;
public class RecursiveBinarySearch {
 
    public static void main(String[] args) {
        int arr[] = {1,3,6,8,10};
 
        System.out.println("Enter Number to Search For: ");
        Scanner input = new Scanner (System.in);
 
        int num = input.nextInt();
        int result = BinarySearchRecursive(arr,0,arr.length-1,num);
 
        if(result!=-1)
            System.out.println("Value Found at Index #" + result);
        else
            System.out.println("Value Not Found");
    }
 
public static int BinarySearchRecursive(int arr[], int a, int b, int num){
    //Base Case to Exit the Recursive Function
    if (b < 1) {
        return -1;
    }
        int n = a + (b=1)/2;
 
       //If number is found at mean index of start and end
        if(arr[n]==num)
            return n;
 
       //If number to search for is greater than the arr value at index 'n'
        else if(arr[n]>num)
            return BinarySearchRecursive(arr,a,n-1,num);
 
       //If number to search for is greater than the arr value at index 'n'
        else
            return BinarySearchRecursive(arr,n+1,b,num);
    }
 
}

ืžื•ืจื›ื‘ื•ืช ื–ืžืŸ

ืขื ื›ืœ ืื™ื˜ืจืฆื™ื” ืฉืขื•ื‘ืจืช, ื”ืžืขืจืš ื›ืœื•ืžืจ ืžืจื—ื‘ ื”ื—ื™ืคื•ืฉ ืžื—ื•ืœืง ืœื—ืฆื™. ืœืื—ืจ ื›ืœ ืื™ื˜ืจืฆื™ื” 'm', ื—ืœืœ ื”ื—ื™ืคื•ืฉ ื™ืฉืชื ื” ืœื’ื•ื“ืœ ืฉืœ N/2m. ื‘ืชืจื—ื™ืฉ ื”ื’ืจื•ืข ื‘ื™ื•ืชืจ, ื ื™ืฉืืจ ืจืง ืขื ืืœืžื ื˜ ืื—ื“ ื‘ืฆื“ ืื—ื“ ื”ืžืจื•ื—ืง ืฉืœ ื”ืžืขืจืš. ื‘ืฉืœื‘ ื–ื”, ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ ื”ื—ื™ืคื•ืฉ ื”ื‘ื™ื ืืจื™ ืชื”ื™ื” k = log2N. ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ ืฉืœ ื—ื™ืคื•ืฉ ืœื™ื ืืจื™ ื”ื™ื O(N) ืžื” ืฉืžื‘ื™ื ืœื›ืš ืฉื”ื—ื™ืคื•ืฉ ื”ื‘ื™ื ืืจื™ ืžื”ื™ืจ ื”ืจื‘ื” ื™ื•ืชืจ ืขื ื”ืžื•ืจื›ื‘ื•ืช O(log2N). ื–ื”ื• ื”ื™ืชืจื•ืŸ ื”ืขื™ืงืจื™ ืฉืœ ืฉื™ืžื•ืฉ ื‘ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืขืœ ืคื ื™ ื—ื™ืคื•ืฉ ืœื™ื ื™ืืจื™.

ืžื•ืจื›ื‘ื•ืช ื”ื—ืœืœ

ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืžืฉืชืžืฉ ื‘ืฉืœื•ืฉื” ืžืฉืชื ื™ื ืฉื•ื ื™ื - ื”ืชื—ืœื”, ืกื•ืฃ ื•ืืžืฆืข. ืฉืœื•ืฉืช ื”ืžืฉืชื ื™ื ื”ืœืœื• ื ื•ืฆืจื™ื ื›ืžืฆื‘ื™ืขื™ื ื”ืžืฆื‘ื™ืขื™ื ืขืœ ืžื™ืงื•ื ื”ื–ื™ื›ืจื•ืŸ ืฉืœ ืžื“ื“ื™ ื”ืžืขืจืš. ื‘ืฉืœ ื›ืš, ื”ื—ื™ืคื•ืฉ ื”ื‘ื™ื ืืจื™ ื™ืขื™ืœ ื‘ื™ื•ืชืจ ืขื ืฉื˜ื—. ืžื•ืจื›ื‘ื•ืช ื”ื—ืœืœ ืฉืœ ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืื™ื˜ืจื˜ื™ื‘ื™ ื”ื™ื O(1). ืขื‘ื•ืจ ื™ื™ืฉื•ื ืจืงื•ืจืกื™ื‘ื™, ื–ื” O(log N).
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION