Skip to content

Update binary_search.c #460

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 50 additions & 43 deletions algorithms/searching/binary_search.c
Original file line number Diff line number Diff line change
@@ -1,43 +1,50 @@
// C program to implement recursive Binary Search
#include <stdio.h>

// A recursive binary search function. It returns
// location of x in given array arr[l..r] is present,
// otherwise -1
int binarySearch(int arr[], int l, int r, int x)
{
if (r >= l)
{
int mid = l + (r - l)/2;

// If the element is present at the middle
// itself
if (arr[mid] == x)
return mid;

// If element is smaller than mid, then
// it can only be present in left subarray
if (arr[mid] > x)
return binarySearch(arr, l, mid-1, x);

// Else the element can only be present
// in right subarray
return binarySearch(arr, mid+1, r, x);
}

// We reach here when element is not
// present in array
return -1;
}

int main(void) //take nothing return something
{
int arr[] = {}; //Enter array of elements
int n = sizeof(arr)/ sizeof(arr[0]);
int x = 10;
int result = binarySearch(arr, 0, n-1, x);
(result == -1)? printf("Element is not present in array")
: printf("Element is present at index %d",
result);
return 0;
}
#include <stdio.h>

// Function to perform binary search on a sorted array
int binarySearch(int arr[], int size, int target) {
// Initializing the left and right pointers for the search range
int left = 0, right = size - 1;

// Loop continues as long as the search range is valid (left <= right)
while (left <= right) {
// Calculate the mid index to avoid overflow
int mid = left + (right - left) / 2;

// Check if the target is found at the mid index
if (arr[mid] == target) {
return mid; // Target found, return the index
}

// If target is greater than mid element, search the right half
if (arr[mid] < target) {
left = mid + 1; // Narrow the search to the right part
}
// If target is smaller than mid element, search the left half
else {
right = mid - 1; // Narrow the search to the left part
}
}

// If the target is not found, return -1
return -1;
}

int main() {
// Example sorted array
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

// Target element to search for
int target = 5;

// Call binarySearch function and store the result
int result = binarySearch(arr, sizeof(arr) / sizeof(arr[0]), target);

// Print the result based on whether the target was found
if (result != -1) {
printf("Element found at index %d\n", result);
} else {
printf("Element not found\n");
}

return 0;
}