二分查找、二叉搜索
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
相关文章推荐
- 二叉 查找树 排序树 搜索树
- POJ - 3579 Median(二分搜索,查找第K大的值)
- 挑战 3.1 不光是查找值!”二分搜索“ Dropping tests
- 5-4 二分搜索数的查找
- 2. C#数据结构与算法 -- 查找算法(顺序查找,哈希查找,二分查找(折半),索引,二叉)
- 不光是查找值!"二分搜索"总结
- 二分查找:在有序数组中搜索大于等于x的数的最小下标
- 插值搜索——本质和二分无异,是利用数据分布的规律来定查找点,其基本假设是数据分布均匀
- 挖掘算法中的数据结构(六):二分查找 和 二分搜索树(插入、查找、深度优先遍历)
- 二分搜索典型应用(一)从有序数组中查找某个值
- 第2章 递归与分治策略,二分搜索技术(查找不成功时,返回区间位置)
- POJ - 3685 Matrix (二分搜索:查找第k大的值)
- [二分] 二分搜索,不光是用来查找值
- [Java]二分搜索(二分查找)
- 二分搜索查找
- 二分查找/二分搜索(binary_search)详解
- 「算法」查找二分搜索树的第K个元素
- 挑战程序设计竞赛 3.1 不光是查找值!“二分搜索”
- 二分搜索/查找(最大化or最小化问题)
- Binary Search 二分查找,二分搜索 C++