`
kevin_in_java
  • 浏览: 29296 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

二分查找,迭代和递归,java实现

阅读更多

直接上代码,递归式

 

package cn.edu.cqupt.serach;

public class HarfSearch {
	public static int search(int[] array,int start,int end,int target)
	{
		int middle = (start+end)/2;
		if(target==array[middle])
			return middle;
		/*
		 * 当数列只剩两个元素时{start,end}
		 * 由于middle每次都等于start,故做特殊判断
		 * 
		 */
		if(end==start+1)
			if(target==array[end])
				return end;
			else
				return -1;
		if(target<array[middle])
			return search(array,start,middle,target);
		if(target>array[middle])
			return search(array,middle,end,target);
		return -1;
	}
	public static void main(String args[])
	{
		int array[]={1,100};
		int result= search(array,0,array.length-1,1);
		System.out.println(result);
	}
}

 

 

迭代式

package cn.edu.cqupt.serach;

public class Search {
	public static  int halfSearch(int[]array,int target)
	{
		int start= 0;
		int end =array.length-1;
		while(end>start+1)
		{
			int middle=(start+end)/2;
			if(target==array[middle])
				return middle;
			if(target<array[middle])
				end=middle;
			else
				start=middle;
		}
		if(target==array[end])
			return end;
		if(target==array[start])
			return start;
		return -1;
	}
	public static void main(String args[])
	{
		int array[]={1,6,8,9,33,45,98,100};
		int result = halfSearch(array,1);
		System.out.println(result);
	}
}

 

分享到:
评论

相关推荐

    Java数据结构和算法中文第二版

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...

    Java数据结构和算法(第二版)

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为什么使用二叉树? ...

    java数据结构与算法第二版

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...

    Java数据结构和算法中文第二版(1)

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 清除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树...

    Java数据结构和算法中文第二版(2)

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 清除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树...

    java 面试题 总结

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    数据结构与算法分析 Java语言描述第2版

    remove方法对LinkedList类的使用3.3.5 关于ListIterator接口3.4 ArrayList类的实现3.4.1 基本类3.4.2 迭代器、Java嵌套类和内部类3.5 LinkedList类的实现3.6 栈ADT3.6.1 栈模型3.6.2 栈的实现3.6.3 应用3.7 队列...

    数据结构与算法分析_Java语言描述(第2版)

    3.4.2 迭代器、Java嵌套类和内部类 3.5 LinkedList类的实现 3.6 栈ADT 3.6.1 栈模型 3.6.2 栈的实现 3.6.3 应用 3.7 队列ADT 3.7.1 队列模型 3.7.2 队列的数组实现 3.7.3 队列的应用 小结 练习 第4章 树 4.1 预备...

    多线程leetcode-LeetcodeNote:LeetCode算法与java或python解决方案(更新中)

    二分搜索,数学二分查找、牛顿法、数学 70 , 迭代 83 , 链表 88 , 数组,两个指针 100 , 树、递归、深度优先搜索 101 , 树、递归、深度优先搜索 104 , 树、递归、深度优先搜索 107 , 树,广度优先搜索 108 , 树、...

    javalruleetcode-Algorithm:永无止境的LeetcodeQ

    二分查找 合并排序数组 迭代就地合并 实现 Trie(前缀树) 特里树 BST 中第 K 个最小的元素 通过堆栈迭代 在线库存跨度 使用加权堆栈进行迭代 字符串中的排列 滑动窗口 将排序列表转换为二叉搜索树 递归有序 前 K 个...

    javalruleetcode-LeetCodeJourney:我用Java编写的LeetCode解决方案。虽然以后可能会加入更多的编程语言(

    java lru leetcode Java 中 LeetCode 的解决方案 项目创建时间: 2020-08-10 项目完成时间: 2020-09-12 ...二分查找 难的 通过 哈希表,两个指针 中等的 难的 中等的 二分查找 中等的 简单的 中等的

    超级有影响力霸气的Java面试题大全文档

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    java范例开发大全源代码

     实例18 Java中的递归 31  实例19 男生女生各多少人 32  实例20 求水仙花数 34  实例21 求任意一个正数的阶乘 35  实例22 求n的n次方 35  实例23 利用for循环输出几何图形 36  实例24 杨辉三角 ...

    java范例开发大全

    实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的...

    Java范例开发大全 (源程序)

     实例213 二分查找法的实现方法 377  实例214 模拟操作系统的进程调度 379  实例215 利用栈将字符串逆序输出 381  实例216 动态的数组链表 382  实例217 你能猜出鱼是谁的宠物吗? 387  实例218 使用...

    Java范例开发大全(全书源程序)

    实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对...

    java范例开发大全(pdf&源码)

    实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的...

    Python核心编程第二版(ok)

    Python核心编程第二版(ok) 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   ...

Global site tag (gtag.js) - Google Analytics