Can anyone explain why this is happening? ie. Even when 175 is present in the array at location 7, the array.binarysearch is returning a negative value?
Please see this image:
Can anyone explain why this is happening? ie. Even when 175 is present in the array at location 7, the array.binarysearch is returning a negative value?
Please see this image:
Did you sort your array beforehand? BinarySearch
expects the array to be sorted. Otherwise, it may return incorrect results.
Also, you should check for >= 0
, not > 0
. The element can be present at index 0.
Make sure the object you are searching for is of the same type as the objects int he array. It helps to use the generic version:
Array.BinarySearch(..)
You could use Type specific version to make sure your input parameters are correct if the array is sorted:
int[] array = new int[] { 1, 3, 4, 5, 175, 200, 300, 400 };
int index = Array.BinarySearch<int>(array, 175);
You'll get a compilation error if the input array or search parameter is not of type int.