二分查找法的实现及原理 拼搏现实的明天。 2022-11-19 09:45 233阅读 0赞 # 二分搜索法 # **原理:折半查找,直到查找到的元素与目标元素相等,查找终止** ## 二分搜索法的实现 ## 剖析: **注:** * **1.基于排序的代码才能使用该方法** * **2.查找的终止条件:——> 中间的那个元素恰巧 等于 要查找的元素** 假定现有一个数组arr = \[20,21,22,23,24,25,26,27,28,29\]; 使用二分搜索法查找该数组中的某一个元素 * **实现原理如下:** * (起始元素的下标 + 终止元素的下标)/ 2 --> 中间元素的下标 * 判断位于该中间的元素是否小于要查找的元素,如果小于,则 **起始元素的下标应该更新为**—— 中间元素的下标 + 1 * 判断位于该中间的元素是否大于要查找的元素,如果大于,则 **终止元素的下标应该更新为** ——中间元素的下标 - 1 需求: 从该数组中查找 28 ,如果有该元素,返回该元素的下标值,如果没有该元素,返回-1 * 查找过程: * 起始元素下标为0 终止元素下标为arr.length-1 * 第一次查找: * (0 + 9)/ 2 ——> 4 * arr\[4\] = 24 * 24 < 28 , 中间元素的下标更新为 4+1=5 * 第二次查找: * (5 + 9)/2 ——> 7 * arr\[7\] = 27 * 27 < 28, 中间元素的下标更新为 7+1=8 * 第三次查找 * (8+9)/2 —— > 8 * arr\[8\] = 28 * 28 = 28 找到元素,循环终止 返回对应下标 **代码实现如下** package Sort; public class dichotomizingSearch { public static void main(String[] args) { int[] arr = { 20,21,22,23,24,25,26,27,28,29}; int result = dichotomizeSearch(arr,28); System.out.println(result); } private static int dichotomizeSearch(int[] array,int ele) { int begin = 0; int end = array.length-1; while (begin <= end) { int mid = (begin+end)/2; if (array[mid] == ele) { // 如果找到的中间元素与要查找的元素相等,则直接返回中间元素的下标 return mid; }else if(array[mid] < ele) { // 找到的中间元素 < 要查找的元素 此时目标元素需要向右搜索,起始的下标需要更新 begin = mid +1; }else { // 找到的中间元素 > 要查找的元素 此时目标元素需要向左搜索,终止的下标需要更新 end = mid -1; } } return -1; } }
相关 二分查找法 前提是在已经排好序的数组中,通过将待查找的元素与中间的索引值对应的元素进行比较,若大于中间索引值对应的元素,去右半部分查找,否则,去左半部分查找。以此类推,直到找到为止;找不到 野性酷女/ 2024年01月01日 06:49/ 0 赞/ 409 阅读
相关 二分查找法 理解二分查找 二分查找,在一组有序数中查找你想要的找到的数值。比如在数组arr\[10\] = \{1,2,3,4,5,6,7,8,9,10\},中查找一个数字7。 电玩女神/ 2023年10月08日 14:16/ 0 赞/ 160 阅读
相关 二分查找法 概述:二分查找法又称折半查找法,是一种效率较高的查找方式,但,二分查找法要求数组必须采用顺序存储结构有序排列。 下面是相关代码: public class Demo 你的名字/ 2023年10月03日 11:19/ 0 赞/ 29 阅读
相关 二分查找法的实现及原理 二分搜索法 原理:折半查找,直到查找到的元素与目标元素相等,查找终止 二分搜索法的实现 剖析: 注: 1.基于排序的代码才能使用该方法 2.查找的 拼搏现实的明天。/ 2022年11月19日 09:45/ 0 赞/ 234 阅读
相关 二分查找法 想使用二分查找法,前提是这个数列需要是有序的 template<typename T> int binarySearch(T arr[],int n, T t 柔光的暖阳◎/ 2022年10月21日 03:49/ 0 赞/ 256 阅读
相关 二分查找法 算法描述 折半的思想去定位要查找的元素 步骤: 1. 前提:有已排序数组 A(假设已经做好) 2. 定义左边界 L、右边界 R,确定搜索范围,循环执行二分查找(3、 红太狼/ 2022年09月14日 09:58/ 0 赞/ 287 阅读
相关 二分查找法 package com.wdl.day07; / @创建人 wdl @创建时间 2021/8/9 @描述 / public class 小鱼儿/ 2022年09月04日 01:45/ 0 赞/ 125 阅读
相关 二分查找法 二分查找法,所需查找次数最高为logn,以2为底 def binary_search(list, item): low and high keep tr 心已赠人/ 2022年05月18日 00:41/ 0 赞/ 302 阅读
相关 二分查找法 最基本的二分查找法、不考虑数组有重复数据、匹配到返回具体元素、没有返回-1 public class TestBinary { public int 淡淡的烟草味﹌/ 2022年02月27日 09:24/ 0 赞/ 392 阅读
相关 二分查找原理及实现 假如现在有一组1到100的数,这是一个有序的序列。现在我就从这组数里面选一个数,然后让你猜我选的数,我会告诉你是大了还是小了,最终猜到我选的数。 一种方法是从1开始猜,假如我 女爷i/ 2021年11月16日 12:42/ 0 赞/ 380 阅读
还没有评论,来说两句吧...