public static int binarySearch(char[] array, int startIndex, int endIndex, char value) {
checkBinarySearchBounds(startIndex, endIndex, array.length);
int lo = startIndex;
int hi = endIndex - 1;
while (lo <= hi) {
int mid = (lo + hi) >>> 1; //无符号右移
char midVal = array[mid];
if (midVal < value) {
lo = mid + 1;
} else if (midVal > value) {
hi = mid - 1;
} else {
return mid; // value found
}
}
return ~lo; // value not present
}
Arrays.binarySearch() 实现
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、如果让你实现属性的weak,如何实现的? PS: @property 等同于在.h文件中声明实例变量的get/...
- 有有变化才是永恒的。这是一个真理,没有什么是永恒不变的。海会枯,石会烂。天会荒,地也会老。就是太阳,也可以用时间来...
- 说真的,拥有梦想的人太多了,可在命运闭上眼睛时候,仍旧苦苦坚守的能有几个?很多时候,我们沦落为平庸的人,呼应了北岛...
- 按:一个能“自我实现”的人,并不畏惧表露自己的感受、情绪、观点。而是寻找合适的方式如何更“真诚的”适当的表露自己的...