No result illustrationNo result illustration

DevLoom

search

Lets Connect

chevron right
Menu
Home

Home

Community

Community

Blog Posts

Blog Posts

Programming

Programming

Tech Topics

Tech Topics

Explore

Explore

Find Jobs

Find Jobs

Tags

Tags

DevLoomPerfect Place for devs
    profile

    Jubair

    upvoteupvote

    1

    downvote

    0

    star

    Binary Search and Linear Search in C++

    clock icon

    Asked 1 year ago

    message

    0Comments

    eye

    7 Views

    Linear search is not the most optimal search algorithm for large datasets, but it is straightforward and works well for small arrays or unsorted data. and Binary Search is much better than LinearSearch 

     
    using namespace std;
    #include <iostream>
     
    // linear search
    
    int LinearSearch(int arr[], int size, int key)
    {
    
        for (int i = 0; i < size; i++)
        {
    
            if (arr[i] == key)
            {
                key = arr[i];
                cout << "Element found at Index " << i << " ";
            }
        }
        return -1;
    }
    
    int BinarySearch(int arr[], int size, int key)
    {
        // Array: {1, 2, 3, 4, 30, 56, 62, 63, 64, 70}
        // Key: 64
        // Size: 10
    
        int start = 0;      // Initialize start index to 0
        int end = size - 1; // Initialize end index to the last element
    
        // Loop continues as long as start is less than or equal to end
        while (start <= end)
        {
            // Calculate the middle index to avoid overflow
            int mid = start + (end - start) / 2; // mid is 9/2 = 4
            int mid_element = arr[mid];          // arr[4] is 30 which is the mid element
    
            // Check if the mid element is the key
            if (mid_element == key)
            {
                return mid; // If found, return the index of the mid element
            }
    
            // If mid element is less than the key
            if (mid_element < key)
            {
                // Key is in the right half
                start = mid + 1; // Move the start index to mid + 1
            }
            else
            {
                // Key is in the left half
                end = mid - 1; // Move the end index to mid - 1
            }
        }
    
        return -1; // If the key is not found, return -1
    }
    
    int main()
    {
    
        int key = 64;
        int size = 10;
        int arr[] = {1, 2, 3, 4, 30, 56, 62, 63, 64, 70};
        LinearSearch(arr, size, key);
    
        int index = BinarySearch(arr, size, key);
    
        if (index != -1)
        {
            cout << "Element found at index " << index << endl;
        }
        else
        {
            cout << "Element not found" << endl;
        }
    }
    DSA
    Searching
    coding
    easy

    Share

    Write your comment here !

    0 Responses