using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Main
{
internal static int InternalBinarySearch(T[] array, int index, int length, T value, IComparer<T> comparer)
{/*from w ww . j a v a 2 s .c o m*/
int num1 = index;
int num2 = index + length - 1;
while (num1 <= num2)
{
int index1 = num1 + (num2 - num1 >> 1);
int num3 = comparer.Compare(array[index1], value);
if (num3 == 0)
return index1;
if (num3 < 0)
num1 = index1 + 1;
else
num2 = index1 - 1;
}
return ~num1;
}
}
No comments