public static int rank(int key,int[] a){
int low=0;//数组下限的下标
int height=a.length-1;//数组上限的下标
int mid;
//先将数组进行排序
Arrays.sort(a);
while(low<=height){
mid=(low+height)/2;
if(key<a[mid]){
//当键值小于中间值时,把中间值-1的值赋给最大坐标
height=mid-1;
}else if(key>a[mid]){
//当键值大于中间值时,把中间值+1的值赋给最小坐标
low=mid+1;
}else{
return mid;
}
//当查找不到时,返回-1
return -1;
}
}
相关文章
- 最小生成树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind
- 最短路径算法 1.Floyed-Warshall算法
- hdu5289 ST表+二分
- [BZOJ 1733] [Usaco2005 feb] Secret Milking Machine 【二分 + 最大流】
- python自动化 协程函数、二分查找、模块搜索
- 【编程练习】快速select算法的实现
- (转)【学习笔记】通过netstat+rmsock查找AIX端口对应进程
- 算法系列-----矩阵(一)-------------单位矩阵的生成
- 超高速指数模糊算法的实现和优化(10000*10000在100ms左右实现)。
- 算法习题-力扣446周赛题解