摘要:思想找中間的數,變換左右邊界值編程要點設置作為作為循環判斷標志代碼找到沒找到
1、思想:找中間的數,變換左右邊界值 2、編程要點:設置 l<=r 作為作為循環判斷標志 3、代碼
import java.util.*; /** * 1、找到 * 2、沒找到 */ public class Main { public static void main(String[] args) { int[] arr = new int[]{1, 4, 7, 9, 12, 15, 17, 25, 33}; int target = 1; System.out.println(bsearch( arr, target)); } private static boolean bsearch(int[] arr, int target) { int l = 0; int r = arr.length - 1; int m =0; boolean found = false; while (l <= r){ m = (l + r) / 2; if (arr[m] == target){ System.out.println(m); return found = true; }else { if (arr[m] > target){ r = m - 1; }else { l = m + 1; } } } return false; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72783.html
摘要:正文二分查找關于二分查找法二分查找法主要是解決在一堆數中找出指定的數這類問題。用二分查找法找尋上界與精確查找不同之處在于,精確查找分成三類大于,小于,等于目標數。 由一道題目引出的: 題目描述 給定一個有序的數組,查找某個數是否在數組中,請編程實現。 分析與解法 一看到數組本身已經有序,我想你可能反應出了要用二分查找,畢竟二分查找的適用條件就是有序的。那什么是二分查找呢? 二分查找可以...
摘要:所以,二分查找較適用于一次排序,多次查找的數據。面對大量的數據,二分查找方能體現其優勢。 1. 二分查找的思想 二分查找是一種使用十分普遍的查找算法,其基本的思路也非常的簡單,在一個有序的數據集合中,我們想要查找某個數據,直接取最中間的那個數據,將它和要找的數據進行比較,如果較大,則在更大的那個數值區間繼續取中間值查找,反之亦然。 例如我們要在一個有序的集合里[1,3,5,6,7,8,...
摘要:二分查找的定義二分查找也稱折半查找,它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結構,而且表中元素按關鍵字有序排列。算法的要求從上面的定義我們可以知道,滿足該算法的要求必須如下兩點必須采用順序存儲結構。 showImg(https://segmentfault.com/img/remote/1460000016466416?w=800&h=191); 二分查找的...
摘要:查找最后一個等于給定值的元素這種變形的二分查找和上面的這種情況很類似,還是利用上面的那個數組,我們要查找最后一個等于的元素。 1. 概述 前面說到了二分查找問題,看起來非常的簡單,的確,前面的兩種實現都不難,代碼也很容易寫,因為那只是最基礎的二分查找問題了。今天來看看幾種稍微復雜的二分查找問題: 查找第一個等于給定值的元素 查找最后一個等于給定值的元素 查找第一個大于等于給定值的元素...
摘要:通過兩個二分查找的條件繼續進行問題的分析,那么問題又來了,二分查找是快速的查找一個數據是否存在一組數據中,而且效率極高,億查找一個數據只需次查找。二分查找的三點重點循環退出條件注意是而不是。 showImg(https://segmentfault.com/img/remote/1460000018761246);這篇文章主要深入數據結構與算法在解決實際問題怎么運用和分析的,對于 IP...
摘要:為檢查長度為的列表,二分查找需要執行次操作。最后需要指出的一點是高水平的讀者可研究一下二叉樹關于二叉樹,戳這里數據結構與算法二叉樹算法常見練習在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 常見數據結構 簡單數據結構(必須理解和掌握) 有序數據結構:棧、隊列、鏈表。有序數據結構省空間(儲存空間小) 無序數據結構:集合、字典、散列表,無序...
閱讀 1698·2021-10-28 09:32
閱讀 605·2021-09-24 09:47
閱讀 2920·2021-09-02 15:11
閱讀 2733·2021-08-09 13:46
閱讀 2884·2019-08-30 15:55
閱讀 1071·2019-08-30 15:54
閱讀 3300·2019-08-29 14:12
閱讀 805·2019-08-26 13:40