java泛型的二分查找

随便测试了一下不知道是否完全正确

1/** 2 * Created by Void Young on 7:57 PM 6/25/2016 . 3 * IDEA-Test . 4 * 泛型二分查找 5 *此处返回的负数为在list里1开始计算的次序位置,不是数组下标 6 */ 7public class GenericBinarySearch { 8 9 public static <E extends Comparable<E>> int binarySearch (E[] list,E key){ 10 int low = 0,high = list.length-1,middle = 0,flag = 0; 11 while (low<=high) { 12 middle = (low+high)/2; 13 flag = key.compareTo (list[middle]); 14 if (flag > 0) { 15 low = middle+1; 16 } else if (flag < 0) { 17 high = middle - 1; 18 } else { 19 return middle;//找到了就返回下标 20 } 21 } 22 23 return - ( low + 1 ); 24 } 25 26 public static void main (String[] args) { 27 Integer[] list = {- 2, 0, 1, 5, 7, 8, 9, 15, 25, 35, 65, 88, 90}; 28 Double[] dlist = {- 18.5, - 5.1, 0.0, 1.1, 25.3, 35.8, 44.5}; 29 System.out.println ( binarySearch (dlist, 25.1)); 30 } 31}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

【数据结构与算法】—— 二分查找

1.二分查找的概念二分查找指的是在排好序的数组中,找到目标元素。如果元素存在则返回元素的下标,不存在则返回1.下面以升序为例进行简单描述2.查找过程:取数组中间元素与查找元素target比较。如果target等于中间元素则直接返回中间元素的下标,如果target小于数组中间元素则在数组左边查找,如果target大于数组中间元素则在右边查找。重复以上步骤。