1. Linear Scan from Left
Intuition
Iterate from index 0 to n - 1. As soon as arr[i] >= x, return i immediately since it is the smallest element >= x. If loop completes, return -1.
When to apply: Unsorted collections or very small array sizes.
Algorithm
- Step 1: Iterate index i from 0 to arr.length - 1.
- Step 2: If arr[i] >= x, return index i immediately.
- Step 3: If loop completes without match, return -1.
#include <iostream>#include <vector> using namespace std; int findCeil(const vector<int>& arr, int x) { for (int i = 0; i < (int)arr.size(); i++) { if (arr[i] >= x) return i; } return -1;} int main() { vector<int> arr = {1, 2, 8, 10, 11, 12, 19}; cout << "Linear Ceil of 5: " << findCeil(arr, 5) << endl; return 0;}Time & Space Complexity
- Time complexity:
O(N)— Worst case checks all N elements. - Space complexity:
O(1)— Uses constant auxiliary memory.