直接上代码,递归式
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);
}
}
分享到:
相关推荐
递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...
递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为什么使用二叉树? ...
递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...
递归的二分查找 汉诺(Hanoi)塔问题 归并排序 清除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树...
递归的二分查找 汉诺(Hanoi)塔问题 归并排序 清除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树...
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...
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 队列...
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 预备...
二分搜索,数学二分查找、牛顿法、数学 70 , 迭代 83 , 链表 88 , 数组,两个指针 100 , 树、递归、深度优先搜索 101 , 树、递归、深度优先搜索 104 , 树、递归、深度优先搜索 107 , 树,广度优先搜索 108 , 树、...
二分查找 合并排序数组 迭代就地合并 实现 Trie(前缀树) 特里树 BST 中第 K 个最小的元素 通过堆栈迭代 在线库存跨度 使用加权堆栈进行迭代 字符串中的排列 滑动窗口 将排序列表转换为二叉搜索树 递归有序 前 K 个...
java lru leetcode Java 中 LeetCode 的解决方案 项目创建时间: 2020-08-10 项目完成时间: 2020-09-12 ...二分查找 难的 通过 哈希表,两个指针 中等的 难的 中等的 二分查找 中等的 简单的 中等的
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...
实例18 Java中的递归 31 实例19 男生女生各多少人 32 实例20 求水仙花数 34 实例21 求任意一个正数的阶乘 35 实例22 求n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 ...
实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的...
实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用...
实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对...
实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的...
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 可扩展 ...