基础算法(三)---二叉树搜索(Java)
来源:互联网 发布:flv.js ios 编辑:程序博客网 时间:2024/06/05 02:15
二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。
算法步骤:
搜素过程从数组的中间元素开始:
如果中间元素正好是要查找的元素,则搜素过程结束;
如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。
如果在某一步骤数组为空,则代表找不到。
这种搜索算法每一次比较都使搜索范围缩小一半。折半搜索每次把搜索区域减少一半,时间复杂度为Ο(logn) 。
public class BinarySearch { public static <T extends Comparable<? super T>> int binarysearch(T[] a, T x) { final int NOT_FOUND = -1; int low = 0; int high = a.length - 1; while (low <= high) { int mid = (low + high) / 2; if (a[mid].compareTo(x) < 0) { low = mid + 1; } else if (a[mid].compareTo(x) > 0) { high = mid - 1; } else { return mid; } } return NOT_FOUND; }}
0 0
- 基础算法(三)---二叉树搜索(Java)
- Java实现 二叉搜索树算法(BST)
- Java实现 二叉搜索树算法(BST)
- Java实现 二叉搜索树算法(BST)
- 数据结构与算法分析(Java语言描述)(16)—— 二叉搜索树基础、节点插入、查找
- 二叉搜索树(java)
- 【数据结构基础】二叉排序(搜索)树
- 二叉搜索树(算法导论)
- 算法导论12(二叉搜索树)
- 数据结构与算法 (二叉搜索树)
- 图解:二叉搜索树算法(BST)
- 算法导论(5) 二叉搜索树
- java 二叉树算法(三)树的遍历
- 算法学习基础篇(四):数据结构(堆、二叉搜索树、并查集)
- 二叉树基础题(三)
- 数据结构--二叉搜索树(java)
- 手写二叉搜索树(Java实现)
- java 二叉搜索树(搜索、添加、遍历)
- linux 错误码
- QiYuAdmin-改造Quartz的Bean由SpringIOC容器管理(SpringBoot项目实战)
- 最新Banner(图片轮播)配置使用
- CRUD增删改查
- git 清除所有修改
- 基础算法(三)---二叉树搜索(Java)
- Linux中执行shell脚本的4种方法
- switch 与 if else
- 解决java构造路径不存在
- ajax返回值data乱码
- 【面试题】二叉树
- 点击文字弹出一个DIV层窗口代码
- (1)JavaScript中的数据类型
- 【bzoj2038】 [2009国家集训队]小Z的袜子(hose)