Mid Coding

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.

More from C# Programming Tutorial

All questions for this course