public class TextSort2 {
public static void main(String[] args) {
int[] arrs={13,26,27,34,52,88,323}; //数组必须为有序数组
System.out.println(find(arrs,323));
}
折半查找:
数组必须为有序数组
思路:先找到数组中间位置的数,用要查询的数与其比较:
如果大于中间数,则往数组中间数的较大一方(右侧查找)
如果小于中间数,则往数组中间数的较小一方(左侧查找)
如果等于中间数,则直接返回该位置
如果没找到,返回-1
@param arrs 有序数组
@param key 要查询的数
private static int find(int[] arrs,int key){
int min=0; //定义最小数索引为0
int max=arrs.length-1; //定义最大数索引为数组长度-1
int middle; //定义中间数
while(true){
middle=(min+max)/2; //每次得到中间数
if(key==arrs[middle]){ //如果key等于中间数
return middle;
}else if(key>arrs[middle]){
min=middle+1; //设置最小位置min为middle+1,并从这个位置往后查找
}else if(key<arrs[middle]){
max=middle-1; //设置最大位置max为middle-1,并从这个位置往前查找
}
if(max<min){ //如果最小位置min,都大于最大位置索引max,则没找到
return -1;
}
}
}
}
分享到:
相关推荐
总的来说,快速排序和折半查找是计算机科学中不可或缺的算法,通过递归和分治策略,可以在Java中高效地实现这些算法,并结合界面设计,为用户提供直观的交互体验。在实际项目中,理解和掌握这些算法有助于优化数据...
折半查找法
这是一个关于数组查找方式的练习,供大家学习交流~~
JAVA 数据结构二分法查找代码。(实验)
折半查找法
Java 折半查找法,也称为二分查找,是一种高效的搜索算法,尤其适用于已排序的数组。这个算法的基本思想是通过不断将待搜索区域减半,直到找到目标元素或者确定目标元素不存在为止。以下是关于折半查找法的详细解释...
Java数据结构实现折半查找的算法过程解析 折半查找是一种常用的查找算法,通过将查找范围不断地缩小来实现快速的查找。Java数据结构实现折半查找的算法过程解析中,主要介绍了折半查找的理论基础、实现方法和优化...
java写的折半查找法,使用间的循环语句,但是逻辑可能不够简洁,希望互相学习!
### Java代码递归的折半查找算法 #### 算法概述 递归版本的折半查找算法是一种高效的搜索技术,适用于已排序的数组。它的工作原理是将问题分解为更小的问题,直到找到目标值或确定目标值不存在于数组中为止。这种...
总的来说,"java 快速排序 折半查找的界面实现"项目旨在通过可视化的方式帮助学习者理解和掌握这两种经典的算法。通过实际的代码实现和交互式的界面,不仅能够锻炼编程技能,还能加深对算法本质的理解,对于提升编程...
Java折半法查找方法 折半法查找是一种常用的查找算法,适用于已排序的数组。该算法的基本思想是将数组分成两部分,然后通过比较目标值与中点值的大小来确定目标值所在的半区间,如此反复直到找到目标值或确定目标值...
折半查找是一种数据结构算法 非常有用 我们用C语言实现了查找 简单有效
包括常见的排序算法,以及折半查找,首先对要查找的数据排好序,然后用递归调用的方式实现折半查找(包括了两种实现方式)。指定一个排好序的数组和要查找的值,同时指定要查找的左边界和有边界。左右边界要位于数组...
所谓的二分查找,指的是将待查的数据序列而分化,然后对比中间中间值和要查找值,判断结果,相等则找到,小于则在左边的子序列找,大于则在右边的子序列找
折半查找 使用java实现
折半查找法基于java的折半查找算法.zip
通常,Java 中的折半查找类可能如下所示: ```java public class BiSearch { // 递归实现 public int recursiveSearch(int[] array, int target, int start, int end) { // 实现递归查找逻辑 } // 非递归实现...
折半查找 折半查找5.java 使用java代码实现 折半查找5.java 使用java代码实现 折半查找5.java 使用java代码实现折半查找5.java 使用java代码实现