Answer to Question #275535 in C for pothik

Question #275535

Given an array arr[] sorted in ascending order of size N and an integer K. Check if K is present in the array or not. (Use Binary Search)

Input: N = 5

K = 6

arr[] = {1,2,3,4,6}

Output: 1

Explanation: Since, 6 is present in the array at index 4 (0-based indexing),

output is 1


1
Expert's answer
2021-12-06T02:18:11-0500


#include <stdio.h>
 
int binary(int arr[], int element, int r, int x)
{
    if (r >= element) {
        int midPosition = element + (r - element) / 2;
 
       
        if (arr[midPosition] == x)
            return midPosition;
 
        
        if (arr[midPosition] > x)
            return binary(arr, element, midPosition - 1, x);
 
        
        return binary(arr, midPosition + 1, r, x);
    }
 
   
    return -1;
}
 
int main()
{
  int  arr[] = {1,2,3,4,6};
    int n = sizeof(arr) / sizeof(arr[0]);
    int K = 6;
    int result = binary(arr, 0, n - 1, K);
    (result == -1)
        ? printf("Not present in array")
        : printf("Output %d", 1);
    return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS