二分查找:
平均时间复杂度:logN
最坏时间复杂度:logN
import java.util.Arrays;
public class BinarySearch {
public static void main(String[] args)
{
int[] array = {2,2,2,2,4};
Arrays.sort(array);
int result = rank(array,2);
System.out.println(result);
}
private static int rank(int[] a,int key)
{
int lo = 0,hi = a.length - 1;
while (lo <= hi)
{
int mid = lo + (hi - lo) / 2;
if (a[mid] > key)
hi = mid - 1;
else if (a[mid] < key)
lo = mid + 1;
else
return mid;
}
return lo;
}
}