class BinarySearch
{
public static void main(String[] args)
{
int arr[]={1,2,3,4,5,6,7,};
int temp=search(arr,2);
System.out.println(temp);
}
//
折半查找前提是:数组必须是有序的
public static int search(int arr[],int key){
int min,max,mid;
min=0;
max=arr.length-1;
mid=(min+max)/2;
while(arr[mid]!=key){
if(arr[mid]<key){
min=mid+1;
}
else if(arr[mid]>key)
max=mid-1;
if(min>max)
return -1;
mid=(min+max)/2;
}
return mid;
}
}
分享到:
相关推荐
通过以上实验,我们不仅学习了数组排序和折半查找算法的基础知识,还掌握了如何使用一维数组实现栈,并利用栈来解决实际问题——将十进制数转换为二进制数。这些技能对于深入理解数据结构和算法非常有帮助,并且能够...
- **查找**:对排好序的数组使用折半查找算法查找某个元素,实现两种查找方式——递归和非递归。 **排序代码实现**: ```java int[] a = {10, 5, 20, 15, 25, 6, 7, 1, 4, 8}; System.out.print("数组排序前顺序:...
### Java基础语法讲解下集——函数与数组 #### 2.7 函数 **2.7.1 函数的定义** - **定义**: 函数(也称作方法)是在类中定义的一段独立的小程序,它具有特定的功能。 - **格式**: ```java 修饰符 返回值类型 ...
提供的代码中,Sort函数使用了冒泡排序算法对整数数组进行升序排序,Find函数则实现了折半查找算法,以高效地在排序后的数组中查找特定值。这种方法提高了查找效率,因为排序后的数组可以利用二分查找的线性对数时间...
在深入探讨数据结构与算法之前,首先需理解其编程基础——Java语言。Java作为一种广泛应用的编程语言,其面向对象特性尤为突出,为数据结构与算法的实现提供了坚实的基础。 **1.1 Java语言基础知识** - **基本数据...
二分查找又称折半查找,是一种在有序数组中查找某一特定元素的搜索算法。查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或...
- **折半查找**:适用于有序数组,通过比较中间元素缩小查找范围。 **8.3 查找树** - **二叉查找树**:节点值大于左子树中所有节点的值,小于右子树中所有节点的值。 - **AVL树**:一种自平衡的二叉查找树,任何...
**习8.4**至**习8.6**分别探讨了折半查找、二叉排序树查找和插入操作的算法实现,这些是高效数据检索的基础。 #### 第9章 排序 排序是数据处理中的一项基本任务,本章介绍了多种排序算法,包括基于堆的排序。**习...
- **折半插入排序**:在直接插入排序的基础上改进,通过二分查找找到插入的位置,降低了查找时间。 - **Shell排序**:通过先将整个待排序的记录分割成为若干子序列分别进行直接插入排序,最后再对整个序列进行一次...
- **顺序查找与折半查找**:这部分内容介绍了两种简单的查找算法——顺序查找和折半查找。 - **查找树**:详细讲解了二叉查找树、AVL树和B-树等不同类型的查找树。 - **哈希**:最后介绍了哈希表的概念,包括哈希...
- 讨论顺序查找与折半查找的基本原理及其优缺点。 - **查找树** - **二叉查找树**:介绍二叉查找树的基本概念及其操作方法。 - **AVL树**:讲解AVL树的概念、平衡因子的定义及其维护平衡的方法。 - **B-树**:...
- **折半查找**:讨论折半查找的原理和实现。 - **8.3 查找树** - **8.3.1 二叉查找树**:讲解二叉查找树的基本概念和操作。 - **8.3.2 AVL树**:介绍自平衡二叉查找树的一种实现。 - **8.3.3 B-树**:介绍B-树...
本部分将介绍数组的声明、使用、初始化和排序算法(如选择排序和冒泡排序),以及如何使用折半查找法在有序数组中查找元素。 八、字符串 字符串是由字符组成的数组,用于表示文本数据。本部分将覆盖字符和ASCII字符...
二分查找,又称为折半查找,是一种在有序数组中查找某一特定元素的搜索算法。算法的基本思想是将待查找区间分成两半,然后判断待查元素和中间元素的大小关系,以确定接下来应该在哪个子区间内继续查找,这一过程将...
- **折半查找**:介绍折半查找的基本原理及其适用条件。 - **查找树** - **二叉查找树**:介绍二叉查找树的基本概念和操作。 - **AVL树**:介绍自平衡二叉查找树AVL树的概念和平衡调整方法。 - **B-树**:介绍B...
- **折半插入排序**:介绍如何利用折半查找优化插入排序。 - **希尔排序**:讨论希尔排序的原理及其实现方法。 通过以上知识点的梳理,我们可以看出,《实用数据结构与算法讲解(JAVA语言版)》这本书为初学者...
折半插入排序改进了插入排序的查找过程,通过折半查找的方式确定插入位置,减少比较次数。 **原理**: - 与插入排序类似,但采用折半查找来定位插入位置,提高查找效率。 - 首先确定插入位置,然后将元素插入,...
二分查找(又称为折半查找)是一种高效的查找算法,尤其适用于有序数组的搜索。该算法的基本思想是将查找区间不断分割为两部分,并根据目标值与中间值的大小关系决定下一步搜索的方向。通过这种方式,每次比较后都能...