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/...
- 有有变化才是永恒的。这是一个真理,没有什么是永恒不变的。海会枯,石会烂。天会荒,地也会老。就是太阳,也可以用时间来...
- 说真的,拥有梦想的人太多了,可在命运闭上眼睛时候,仍旧苦苦坚守的能有几个?很多时候,我们沦落为平庸的人,呼应了北岛...
- 按:一个能“自我实现”的人,并不畏惧表露自己的感受、情绪、观点。而是寻找合适的方式如何更“真诚的”适当的表露自己的...