折半查找法的平均时间复杂度是log2n。
心法领悟190:泛型在数据结构中的应用。
在学习数据结构的过程中,为了理解方便和简化编程,通常都使用整数作为分析的对象。利用Java的泛型机制,只需要将int替换成泛型类型T就可以实现更加通用的算法。这样就不需要再对不同的数据类型编写不同的算法实现。
提示:Java SE API (java.util.Arrays)中已经实现了优化了的折半查找算法,实际编程中推荐大家使用。
package com.mingrisoft.generic; import java.util.Arrays; public class BinSearch { public static <T extends Comparable<? extends T>> int search(T[] array, T key) { int low = 0; int mid = 0; int high = array.length; System.out.println("被查找的中间值:"); while (low <= high) { mid = (low + high) / 2; System.out.print(mid+" "); if (key.compareTo(array[mid]) > 0) { low = mid + 1; } else if (key.compareTo(array[mid]) < 0) { high = mid - 1; } else { System.out.println(); return mid; } } return -1; } public static void main(String[] args) { Integer[] ints = {1,2,3,4,5,6,7,8,9,10}; System.out.println("数据集合:"); System.out.println(Arrays.toString(ints)); System.out.println("元素3所对应的索引序号:"+search(ints, 3)); } }
Result:
数据集合: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 被查找的中间值: 5 2 元素3所对应的索引序号:2
相关推荐
NULL 博文链接:https://kanglecjr.iteye.com/blog/2098883
NULL 博文链接:https://kanglecjr.iteye.com/blog/2098884
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
JAVA设计模式--程序设计--反射--注解--泛型
java --泛型编程 课件 同时可结合《java 程序员教程》这本书
个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
NULL 博文链接:https://kanglecjr.iteye.com/blog/2099649
14-泛型
03-Java集合-泛型面试题(24题)-新增
泛型实例(匿名方法实现排序与查找)巩固S2学期的学习!
java基础-泛型通配符
NULL 博文链接:https://kanglecjr.iteye.com/blog/2098497
SSH笔记-泛型依赖注入,当继承类完毕之后,根据泛型依赖注入的特性,被继承类会参照继承类所引用了的其他的引用关系自动建立对应引用关系,这就是泛型依赖注入
GP-泛型算法通用原则
Java 基础(4_8) - 泛型机制详解
后端研究-泛型机制在Apla-Java程序生成系统中实现的方法研究.pdf
包含代码,实验案例,课件(泛型的基本概念、泛型的定义和类型参数、泛型类和泛型接口,泛型委托和泛型事件)
C++Primer第11章-泛型算法-课后习题答案[收集].pdf