您的位置:首页 > 其它

二分查找(折半查找)

2016-05-10 17:09 288 查看
package chazhao;

public class fine {

public static void main(String[] args) {
int[] array = { 0, 1, 16, 24, 35, 47, 59, 62, 73, 88, 99 };

//二分查找
fine f = new fine();
int result = f.erfenchazhao(array, 23);
System.out.println(result);

}

/*
* 折半查找、二分查找
*/
public int erfenchazhao(int[] array, int key) {
int low = 0;
int high = array.length;

while (low < high) {

if (key > array[(low + high) / 2]) {
low = (low + high) / 2 + 1;
} else if (key < array[(low + high) / 2]) {
high = (low + high) / 2 - 1;
} else {
return (low + high) / 2;
}
}
return -1;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: