public class PaiXu { public static void main(String[] args) { /*int[] arr = {3,1,5,4,2,9}; int index = getIndex(arr,20); System.out.println("index="+index);*/ int[] arr = {2,4,5,7,8,9,13,64}; int index = halfSerach_2(arr, 5); System.out.println("index="+index); } //折半的第二种方式 public static int halfSerach_2(int[] arr,int key){ int min = 0,max = arr.length-1,mid; while(min<=max){ mid = (max+min)>>1; if (key>arr[mid]) { min = mid+ 1; }else if(keyarr[mid]) { min = mid+ 1; }else if(keymax){ return -1; } mid = (min+max)/2; } return mid; } //定义功能,获取key第一次出现在数组中的位置。如果是-1,那么代表该key在数组中不存在。 /*public static int getIndex(int[] arr,int key){ for (int i = 0; i < arr.length; i++) { if (arr[i]==key) { return i; } } return -1; }*/ }
java的折半查找_java折半查找法的两种方式
最新推荐文章于 2023-04-25 09:44:01 发布
这篇博客展示了如何在Java中实现折半查找法(二分搜索),通过一个示例代码查找给定数组中特定值的索引。代码首先定义了一个传统的线性搜索方法,然后实现了一个优化的折半查找方法,该方法在已排序的数组中更高效地找到目标值的索引。博客内容主要涉及编程和算法知识。
摘要由CSDN通过智能技术生成