数组查找之二分查找(折半查找)---带图详解+代码逐步分析!赋基本查找以及基本查找的实现代码 ╰+攻爆jí腚メ 2022-02-09 10:21 143阅读 0赞 **话不多说,直接上图,开始分析:** ![二分查找原理图][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjMyMjQwNg_size_16_color_FFFFFF_t_70] 从上图我们不难分析出二分查找的基本思想以及实现的思路。 **代码的逐步分析加实现:** public class ArrayDemo { public static void main(String[] args) { //定义一个数组 int[] arr = {11,22,33,44,55,66,77}; //写功能实现 int index = getIndex(arr, 33); System.out.println("index:"+index); //加入这个元素不存在,会有什么现象呢? index = getIndex(arr, 333); System.out.println("index:"+index); } /* * 两个明确: * * 返回值类型:int * 参数列表:int[] arr,int value * * */ public static int getIndex(int[] arr,int value) { //定义最小索引,最大索引 int min = 0; int max = arr.length - 1; //计算出中间索引 int mid = (max+min)/2; //拿中间索引的值和要查找的元素进行比较 while(arr[mid] != value) { if(arr[mid] > value) { max = mid - 1; }else if(arr[mid] < value) { min = mid + 1; } //加入判断 if(min > max) { return -1; } mid = (max+min)/2; } return mid; } } **基本查找:** 数组元素无序(从头到尾) public static int getIndex(int[] arr,int value) { int index = -1; for(int x = 0;x < arr.length;x++) { if(arr[x] == value) { index = x; break; } } return index; } [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjMyMjQwNg_size_16_color_FFFFFF_t_70]: /images/20220206/38c6b466173d4431ad24433c1a289d2c.png
还没有评论,来说两句吧...