First Occurrence of a Number in a Sorted Array?
int FirstOccurrence(int[] arr, int target)
int low = 0, high = arr.Length - 1, result = -1;
while (low <= high)
int mid = low + (high - low) / 2;
if (arr[mid] == target)
result = mid;
Follow on:
high = mid - 1; // search left side
else if (arr[mid] < target)
low = mid + 1;
else
high = mid - 1;
return result;
Explanation:
Binary search but continue left to find first occurrence.