/**
* 查找算法
*
* @author bruce
*
*/
public class Search {
/**
* 二分查找(非递归,升序)
* @param arr
* @param v
* @return
*/
public int find(int[] arr,int v){
int begin=0,end=arr.length-1;
while(begin<=end){
int m=(begin+end)>>>1;
int mValue=arr[m];
if(mValue>v){
end=m-1;
}else if(mValue<v){
begin=m+1;
}else{
return m;
}
}
return -1;
}
/**
* 二分查找(递归,升序)
* @param arr
* @param begin
* @param end
* @param v
* @return
*/
public int search(int arr[],int begin,int end,int v){
System.out.println("begin:"+begin+" end:"+end);
if(begin<=end){
int m=(begin+end)>>>1;
int mValue=arr[m];
if(mValue>v){
return search(arr,begin,m-1,v);
}else if(mValue<v){
return search(arr,m+1,end,v);
}else{
return m;
}
}
return -1;
}
public static void main(String[] args){
Search search=new Search();
int[] arr={1,2,3,4,5,6,7,8,9,10};
int index=search.search(arr,0,arr.length-1, 4);
System.out.println(index);
}
}
分享到:
相关推荐
折半查找算法是一种在有序数组中寻找特定元素的搜索算法,其基本思想是将数组分为两半,通过比较中间元素和目标值来缩小搜索范围。然而,传统的折半查找在某些情况下并不一定是效率最高的方法。通过对查找算法的改进...
二分查找算法 二分查找算法是一种高效的查找算法,适用于已经排好序的数组或链表中查找特定的元素。该算法的时间复杂度为O(log n),远远优于顺序查找算法的O(n)。 二分查找算法的基本思想是将数组或链表分成两个...
本实验主要探讨了三种基本的查找算法:顺序查找、折半查找(二分查找)和索引查找,这些算法都是在数组或集合中寻找特定元素的重要方法。下面将详细解释这三种查找算法,并结合C语言编程环境进行深入分析。 1. **...
查找算法集 查找算法是计算机科学中的一种基本算法,用于在数组或链表中搜索指定的元素。以下是四种常见的查找算法:顺序查找、二分查找、插值查找和动态查找。 顺序查找 顺序查找是一种最简单的查找算法,它的...
折半查找算法在顺序表中插入一个元素讲解 折半查找算法是一种常用的查找算法,它可以在已经排好序的顺序表中快速地找到某个元素。下面我们来详细讲解折半查找算法在顺序表中插入一个元素的过程。 折半查找算法的...
在IT领域,查找算法是计算机科学中的核心概念,特别是在数据结构和算法设计中。本文将深入探讨《C++查找算法大集锦》中所涵盖的各种查找技术,包括差值查找法、斐波那契查找、哈希查找(拉链法与探测法)以及顺序和...
C 语言几种常见的查找算法 本篇文章总结了几种常用的查找算法,包括静态查找、顺序查找、索引顺序表查找、折半查找和次优查找树等。这些算法都是在C语言中实现的,旨在帮助读者更好地理解和应用这些查找算法。 一...
在计算机科学中,查找算法是数据结构和算法领域中的核心概念,用于在数据集合中寻找特定元素。这里我们将深入探讨两种常见的查找算法:二分查找和顺序查找。 **一、顺序查找** 顺序查找是最基础的查找算法之一。它...
查找算法是计算机科学中的一种基本操作,它涉及在数据集合中定位特定元素的过程,这一过程又称为检索。在不同数据结构上实现查找算法会有不同的方法和性能表现。查找算法通常根据数据的存储方式和查找方法进行分类,...
查找算法和排序算法小结 本文总结了常见的查找算法和排序算法,包括顺序查找、二分查找、选择排序、冒泡排序、二分排序、插入排序、希尔排序、堆排序、归并排序等。 一、查找算法 1. 顺序查找(Sequential Search...
查找算法的比较 在计算机科学中,查找算法是一种基本且常用的算法,它们的应用非常广泛。本文将对几种常用的查找算法进行比较,包括顺序查找、二分查找、二叉树查找和哈希表查找。 顺序查找是一个最简单的查找算法...
这篇实验报告,来源于云南大学数据结构课程的第七次实践,聚焦于查找算法的理论和实现,特别是哈希表这一高效的数据结构。哈希表,也称为散列表,是一种能够实现快速查找的结构,它通过哈希函数将数据映射到一个固定...
数据结构中的查找算法是计算机科学中的重要组成部分,它涉及到如何高效地在大量数据中寻找特定信息。查找操作,也就是检索,通常在数据元素的集合,即查找表中进行。查找的效率与查找对象的组织方式和所采用的查找...
在IT领域,尤其是在编程中,理解并掌握不同的查找算法是至关重要的。本文将详细解析C#中的基础查找算法,包括静态查找与动态查找、内查找与外查找,以及两种具体的查找算法:顺序查找(线性查找)和二叉查找(折半...
在计算机科学领域,排序和查找算法是核心概念,它们直接影响程序的效率和性能。排序算法是用来组织数据,使其按照特定顺序排列的算法,而查找算法则是在这些有序或无序数据中寻找特定元素的方法。本篇文章将深入探讨...
综合查找算法课程设计报告书旨在通过实践加深对各种查找算法的理解和应用,这些算法在软件和硬件设计领域中起着至关重要的作用。本项目利用Java编程语言,借助Eclipse开发环境,实现了一个用户友好的图形界面,允许...
文件名中的"Sun数据结构第8章查找(第22-25讲).ppt"和"Sun数据结构第9章排序(第25-27讲).ppt"表明,内容可能详细涵盖了查找算法的各个方面,包括二分查找的原理、实现和优化,以及排序算法的介绍、实现步骤和性能...
各类查找算法的比较(数据结构课程设计) 开始的时候提示输入一组数据。并存入一维数组中,接下来调用一系列查找算法对其进行处理。顺序查找只是从头到尾进行遍历。二分查找则是先对数据进行排序,然后利用三个标志...
二分查找算法是一种高效的数据搜索方法,尤其适用于有序数组或集合。它的基本思想是通过将查找区间不断减半,快速定位目标元素的位置。在每一步中,算法都会比较中间元素与目标值,根据比较结果缩小查找范围。若目标...
分块查找算法是一种在大规模数据集合中提高查找效率的策略,它是对传统顺序查找方法的优化。在传统的顺序查找中,我们需要线性遍历整个数据序列来查找目标元素,这在数据量大时效率较低。分块查找通过将数据划分为较...