二分法查找(详解)
来源:互联网 发布:未闻花名但知花香出处 编辑:程序博客网 时间:2024/05/29 04:51
一共三种方案
package com.***.test;public class BinarySearch1 { /** * 相同数时返回右边查到的数 */ public static int binarySearchRight(int [] arr,int target){ int low=0; int high=arr.length; while (low < high){ int mid=(low+high)/2; if(target < arr[mid]) high--; else low++; } if(arr[high-1]==target) return high-1; else return -1; } /** * 相同数时返回左边查到的数 */ public static int binarySearchLeft(int [] arr,int target){ int low=0; int high=arr.length; while (low < high){ int mid=(low+high)/2; if(target <= arr[mid]) high--; else low++; } if(arr[high]==target) return high; else return -1; } /** *找的直接返回 */ public static int binarySearch(int [] arr,int target){ int low=0; int high=arr.length; while (low < high){ int mid=(low+high)/2; if(target == arr[mid]) return mid; else if (target <arr[mid]) high--; else low++; } return -1; } public static void main(String[] args) { int [] arr={1,2,2,5,5,8,9,12}; System.out.println(binarySearchRight(arr,10)); System.out.println(binarySearchLeft(arr,10)); System.out.println(binarySearch(arr,10)); }}
阅读全文
0 0
- 二分法查找(详解)
- 折半查找和递归折半查找详解(二分法查找,递归二分法查找)
- 二分法(折半查找)
- 二分法(折半查找)
- 折半查找(二分法)
- 折半查找(二分法)
- 折半查找(二分法)
- 二分法查找(C)
- 二分法查找(折半查找)
- 折半查找法(二分法)
- PHP二分法(折半查找)
- 折半查找(二分法 练习)
- 二分法查找(all way)
- java折半查找(二分法)
- 查找(时间复杂度; 二分法)
- 查找(一)—— 二分法查找
- 二分法查找
- 二分法查找
- 安装windows系统
- 分析Ajax请求并爬取下载今日头条街拍美图
- 计数排序
- python 从一系列字符串中,找出频率最高的字符串
- Android Alpha换算表
- 二分法查找(详解)
- laravel5访问器 & 修改器
- Map集合的遍历?
- 通过Spring RestTemplate 做分页
- 虚函数总结
- 快速可靠协议:KCP
- BZOJ2957 楼房重建
- Boost库实现线程池学习及线程实现的异步调用
- 【需求采集】用户访谈的注意点