二分查找
来源:互联网 发布:白鹤算命师 知乎 编辑:程序博客网 时间:2024/05/20 04:31
二分查找的效率比较高,时间复杂度为o(log(n)),它接受一个整数键和一个已经有序的数组作为参数,如果该键存在于数组中就返回它的索引,否则返回-1,用一个while循环判断low与high的大小,当low>high的时候跳出循环,否则用mid作为中间索引去查找key,如果key<nums[mid],那么让high变为mid-1,若key>nums[mid],low变为mid+1,如果key=nums[mid],那么说明找到了key,返回其索引mid,java程序如下:
import java.util.Arrays;public class BinarySearch {public static int rank(int[] nums, int key) {// 这里的数组nums必须是有序数组int low = 0;int high = nums.length - 1;while (low <= high) {int mid = low + (high - low) / 2;if (key < nums[mid]) {high = mid - 1;} else if (key > nums[mid]) {low = mid + 1;} elsereturn mid;}return -1;}public static void main(String[] args) {int[] nums = { 1, 6, 3, 4, 8, 2 };int key = 2;Arrays.sort(nums);int res = rank(nums, key);System.out.println(res);}}
阅读全文
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- Tensorflow学习:MINIST手写体
- (fzu) Problem D Game(KMP算法,字符串匹配问题)
- STL 八大容器操作指令
- NYOJ 264 国王的魔镜
- Angular2 搭建项目
- 二分查找
- Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
- java折半查找(二分法)
- NYOJ 224 灯光师小明
- SSnoCD (之四)
- 40个Java集合面试问题和答案
- centOS 安装nginx
- Struts2的执行流程--案例 使用struts2+hibernate实现客户列表查询
- muduo源码分析之Acceptor