[C] Binary search
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity: $$O(nlogn)$$\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: $$O(1)$$\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\n/*\n * 2568. Minimum Impossible OR\n *\n * You are given a 0-indexed integer array nums.\n * \n * We say that an integer x is expressible from nums if there exist some \n * integers 0 <= index1 < index2 < ... < indexk < nums.length for which \n * nums[index1] | nums[index2] | ... | nums[indexk] = x. In other words, \n * an integer is expressible if it can be written as the bitwise OR of \n * some subsequence of nums.\n * \n * Return the minimum positive non-zero integer that is not expressible from nums.\n *\n * 1 <= nums.length <= 10^5\n * 1 <= nums[i] <= 10^9\n */\n\nint cmp(const void *a, const void *b)\n{\n    return *((int *)a) - *((int *)b);\n}\n\nbool binSearch(int *nums, int numsSize, int target)\n{\n    for (int i = 0, j = numsSize - 1; i <= j; ) {\n        int mid = i + (j - i) / 2;\n\n        if (nums[mid] > target) {\n            j = mid - 1;\n        }\n        else if (nums[mid] < target) {\n            i = mid + 1;\n        }\n        else {\n            return true;\n        }\n    }\n\n    return false;\n}\n\nint minImpossibleOR(int* nums, int numsSize){\n\n    /*\n     * Input:\n     *  *nums\n     *  numsSize\n     */\n\n    /* Sort by value in ascending order */\n    qsort(nums, numsSize, sizeof(int), cmp);\n\n    /* Binary search 2^i, find the first 2^n not present in the array */\n    for (int i = 0; i < 31; i++) {\n        if (binSearch(nums, numsSize, (1 << i)) == false) {\n            return (1 << i);\n        }\n    }\n\n    /*\n     * Output:\n     *  Return the minimum positive non-zero integer that is not expressible from nums.\n     */\n\n    return 0;\n}\n```
['Array', 'Binary Search', 'Bit Manipulation', 'C', 'Sorting']