`
android2116
  • 浏览: 14533 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA折半查找法

 
阅读更多
class ArrayFind 
{
	public static void main(String[] args) 
	{

		int[] arr = new int[]{1,6,9,11,18,54,60,66,90};
		System.out.print("find 18 from array:");
		printArr(arr);
		System.out.println("find result is(halfSearch):" + halfSearch_2(arr, 18));
		System.out.println("find result is(halfSearch_2):" + halfSearch_2(arr, 18));

	}//end of method main

	//打印一个数组
	public static void printArr(int[] arr)
	{
		for (int x = 0; x<arr.length; x++ )
		{
			if (x == arr.length - 1)
			{
				System.out.println(arr[x]);
				break;
			}
			System.out.print(arr[x] + ",");
		}
	}//end of method printArr

	//折半查找法
	public static int halfSearch(int[] arr, int key)
	{
		int max = arr.length - 1;
		int min = 0;
		int mid = (max + min)/2;
		while (arr[mid] != key)
		{
			if (key>arr[mid])
			{
				min = mid + 1;
			}
			else if (key<arr[mid])
			{
				max = mid - 1;
			}
			if (min>max)
			{
				return -1;
			}
			mid = (max + min)/2;
		}//end of while
		return mid;

	}//end of method halfSearch

	//折半查找的第二种方式
	public static int halfSearch_2(int[] arr, int key)
	{
		
		int max = arr.length - 1;
		int min = 0;
		int mid = (max + min)/2;
		while (min <= max)
		{
			if ( key > arr[mid] )
			{
				min = mid + 1;
			}
			else if ( key < arr[mid] )
			{
				max = mid - 1;
			}
			else if (key == arr[mid])
			{
				return mid;
			}
			mid = ( max + min ) / 2;
		}//end of while

		return -1;
	
	}//end of method halfSearch

}//end of class ArrayFind

 

分享到:
评论

相关推荐

    java 折半查找法 java 折半查找法

    折半查找法

    java折半查找法.md

    折半查找法

    java 快速排序 折半查找的界面实现 (递归与分治法)

    总的来说,快速排序和折半查找是计算机科学中不可或缺的算法,通过递归和分治策略,可以在Java中高效地实现这些算法,并结合界面设计,为用户提供直观的交互体验。在实际项目中,理解和掌握这些算法有助于优化数据...

    java 折半查找法(二分查找)实例

    Java 折半查找法,也称为二分查找,是一种高效的搜索算法,尤其适用于已排序的数组。这个算法的基本思想是通过不断将待搜索区域减半,直到找到目标元素或者确定目标元素不存在为止。以下是关于折半查找法的详细解释...

    java中折半法查找方法

    Java折半法查找方法 折半法查找是一种常用的查找算法,适用于已排序的数组。该算法的基本思想是将数组分成两部分,然后通过比较目标值与中点值的大小来确定目标值所在的半区间,如此反复直到找到目标值或确定目标值...

    用折半查找法实现排序问题

    public int searchNumber(double num, boolean updown) {// 折半查找算法 int left = 0, right = Array.length - 1, middle = -1; while (left ) { middle = (left + right) / 2; if (num == Array[middle]) ...

    Java代码递归的折半查找算法

    ### Java代码递归的折半查找算法 #### 算法概述 递归版本的折半查找算法是一种高效的搜索技术,适用于已排序的数组。它的工作原理是将问题分解为更小的问题,直到找到目标值或确定目标值不存在于数组中为止。这种...

    实例190 - 泛型化的折半查找法

    总之,泛型化的折半查找法是Java编程中提高代码复用性和安全性的一个有效手段,尤其在处理各种类型的数据集合时,它的优势更为明显。通过理解和应用这个实例,开发者可以更好地掌握泛型和查找算法的结合,提升程序...

    java程序写的 折半查找

    java写的折半查找法,使用间的循环语句,但是逻辑可能不够简洁,希望互相学习!

    基于java的折半查找算法.zip

    折半查找法基于java的折半查找算法.zip

    java 快速排序 折半查找的界面实现

    总的来说,"java 快速排序 折半查找的界面实现"项目旨在通过可视化的方式帮助学习者理解和掌握这两种经典的算法。通过实际的代码实现和交互式的界面,不仅能够锻炼编程技能,还能加深对算法本质的理解,对于提升编程...

    用java实现折半查找

    折半查找法

    有15个数折半查找法.md

    有15个数折半查找法

    java排序 折半法

    在普通插入排序中,当确定元素的正确位置时,需要从前向后依次比较,而折半插入排序则通过二分查找(折半查找)的方式确定插入位置,减少了比较次数,提高了效率。 #### 代码解析 ```java public class Sort3 { ...

    折半查找法,也称为二分查找法.pdf

    折半查找法,又称二分查找法,是一种在有序数组中高效寻找目标值的算法。其核心思想是利用数组的有序性,通过不断缩小搜索范围,以递归或迭代的方式快速定位目标值。该方法特别适合于大规模数据的查找,因为它的平均...

    分治法应用(折半查找也叫二分查找)

    用分治法思想实现二分查找,Java语言描述。

    java 二分查找法的实现方法

    二分查找法,又称折半查找法,是计算机科学中一种高效的搜索算法,尤其适用于已排序的数据集合。在Java中,二分查找法通常用于数组或有序列表中,其核心思想是通过不断缩小搜索范围来快速定位目标元素。以下是关于...

    javascript折半查找详解

    折半查找法: 在有序表中,把待查找数据值与查找范围的中间元素值进行比较,会有三种情况出现: 1) 待查找数据值与中间元素值正好相等,则放回中间元素值的索引。 2) 待查找数据值比中间元素值小,则以整个查找...

Global site tag (gtag.js) - Google Analytics