二分排序
来源:互联网 发布:淘宝好点的男装店 编辑:程序博客网 时间:2024/06/10 15:37
public class BinarySearch { public static int binarySearch(int[] array,int x){ int result =-1; int left = 0; int right = array.length; int index; while(left<=right){ index = (left+right)/2; if(array[index]==x){ result=index; break; } if(array[index]<x){ left = index+1; } if(array[index]>x){ right = index-1; } } return result; } public static int binarySearch(List<Integer> list, Integer x){ int result =-1; int left = 0; int right = list.size(); int index; while(left<=right){ index = (left+right)/2; if(list.get(index)==x){ result=index; break; } if(list.get(index)<x){ left = index+1; } if(list.get(index)>x){ right = index-1; } } return result; } public static <T extends Comparable> int binarySearch(List<T> list,T x){ int result =-1; int left = 0; int right = list.size()-1; int index; while(left<=right){ index = (left+right)/2; if(list.get(index).compareTo(x)==0){ result=index; break; } if(list.get(index).compareTo(x)<0){ left = index+1; } if(list.get(index).compareTo(x)>0){ right = index-1; } } return result; } public static void main(String[] args) { /* int[] array= new int[20]; for(int i=0;i<20;i++){ array[i]=i+1; } for(int i=0;i<=20;i++){ System.out.println(binarySearch(array,i)); }*/ List<Double> list = new ArrayList<>(); for(int i=0;i<20;i++){ list.add(i*1.01); } System.out.println(binarySearch(list, 5.05)); }}
阅读全文
0 0
- 二分排序
- 二分排序
- 二分排序
- 二分排序
- 二分排序
- 排序+二分
- 二分排序
- 二分排序
- 二分排序
- 排序之二分排序
- 二分排序与二分查找
- 二分排序与二分查找
- 二分排序与二分查找
- 二分查找和二分排序
- 二分排序:直接插入排序+二分搜索
- 二分查找+二分排序(快速排序)
- 排序之二分插入排序
- 排序之二分插入排序
- tomcat8.5配置https
- 多域名同步登录,单点登录SSO
- 设置eclipse自动生成的author等注释
- 应用适配器模式---拆分同步事务为异步事务的一种尝试
- Hadoop Journal Node 作用
- 二分排序
- 使用itext生成pdf的,各种布局
- caioj1039:递归9(骑士巡游)
- ALSA
- error realloc(): invalid next size 崩溃
- celery task任务在redis存储有乱码
- Eclipse 在线安装SVN的(SVN CONNECTOR按官方指引不成功)
- 【Java学习笔记】31:查漏补缺3(传值和传引用,Eclipse单步调试)
- Video.js调整视频封面大小的问题