您的位置:首页 > 其它

二分查找、二叉搜索

2017-07-04 20:31 232 查看


查找——折半查找(二分查找、二叉搜索)


简单的折半查找方法

public static int binSearch(int[] arr, int first ,int last, int target)
{
int mid;
int midValue;
while(first < last){
mid = (first + last) / 2;
midValue = arr[mid];//查找成功
if(target == midValue){
return mid;
}else if(target < midValue){
last = mid;
}else{
first = mid;
}
}
return -1;//查找失败
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


泛型二叉搜索方法

public static <T> extends Comparable<? super T>

int binSearch(T[] arr, int first, int last, T target)
{
int mid;
T midValue;
while(first < last){
mid = (first + last) / 2;
midValue = arr[mid];
if(target.compareTo(midValue) == 0){
return mid; //查找成功
}else if(target.compareTo(midValue) < 0){
last = mid;
}else{
first = mid;
}
}
return -1; // 查找失败

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

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