Binary Search through an array

http://www.geeksforgeeks.org/sorted-array-to-balanced-bst/

The array needs to be sorted.

bool find(vector<int> arr, int left, int right, int elm) {
    if(left > right) {
        return false;
    }
    int middle = (left + right) / 2;
    if(arr[middle] == elm) {
        return true;
    }
    if(arr[i] < arr[middle])
        return find(arr, left, middle, elm);
    else
        return find(arr, middle + 1, right, elm);
}

Sorted Array to BST

Node* arrayToBSTUtil(int arr, int left, int right) {
    if(left > right) {
        return nullptr;
    }

    int middle = (left + right) / 2;
    Node* node = new Node(arr[middle]);
    node->left = arrayToBSTUtil(arr, left, middle - 1);
    node->right = arrayToBSTUtil(arr, middle + 1, right);

    return root;
}

Node* arrayToBST(vector<int> arr, int left, int right) {
    Node* root = arrayToBSTUtil(arr, 0, arr.size() - 1);
    return root;
}

results matching ""

    No results matching ""