摘要:思想找中間的數(shù),變換左右邊界值編程要點設(shè)置作為作為循環(huán)判斷標志代碼找到?jīng)]找到
1、思想:找中間的數(shù),變換左右邊界值 2、編程要點:設(shè)置 l<=r 作為作為循環(huán)判斷標志 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; } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72783.html
摘要:正文二分查找關(guān)于二分查找法二分查找法主要是解決在一堆數(shù)中找出指定的數(shù)這類問題。用二分查找法找尋上界與精確查找不同之處在于,精確查找分成三類大于,小于,等于目標數(shù)。 由一道題目引出的: 題目描述 給定一個有序的數(shù)組,查找某個數(shù)是否在數(shù)組中,請編程實現(xiàn)。 分析與解法 一看到數(shù)組本身已經(jīng)有序,我想你可能反應(yīng)出了要用二分查找,畢竟二分查找的適用條件就是有序的。那什么是二分查找呢? 二分查找可以...
摘要:所以,二分查找較適用于一次排序,多次查找的數(shù)據(jù)。面對大量的數(shù)據(jù),二分查找方能體現(xiàn)其優(yōu)勢。 1. 二分查找的思想 二分查找是一種使用十分普遍的查找算法,其基本的思路也非常的簡單,在一個有序的數(shù)據(jù)集合中,我們想要查找某個數(shù)據(jù),直接取最中間的那個數(shù)據(jù),將它和要找的數(shù)據(jù)進行比較,如果較大,則在更大的那個數(shù)值區(qū)間繼續(xù)取中間值查找,反之亦然。 例如我們要在一個有序的集合里[1,3,5,6,7,8,...
摘要:二分查找的定義二分查找也稱折半查找,它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結(jié)構(gòu),而且表中元素按關(guān)鍵字有序排列。算法的要求從上面的定義我們可以知道,滿足該算法的要求必須如下兩點必須采用順序存儲結(jié)構(gòu)。 showImg(https://segmentfault.com/img/remote/1460000016466416?w=800&h=191); 二分查找的...
摘要:查找最后一個等于給定值的元素這種變形的二分查找和上面的這種情況很類似,還是利用上面的那個數(shù)組,我們要查找最后一個等于的元素。 1. 概述 前面說到了二分查找問題,看起來非常的簡單,的確,前面的兩種實現(xiàn)都不難,代碼也很容易寫,因為那只是最基礎(chǔ)的二分查找問題了。今天來看看幾種稍微復(fù)雜的二分查找問題: 查找第一個等于給定值的元素 查找最后一個等于給定值的元素 查找第一個大于等于給定值的元素...
摘要:通過兩個二分查找的條件繼續(xù)進行問題的分析,那么問題又來了,二分查找是快速的查找一個數(shù)據(jù)是否存在一組數(shù)據(jù)中,而且效率極高,億查找一個數(shù)據(jù)只需次查找。二分查找的三點重點循環(huán)退出條件注意是而不是。 showImg(https://segmentfault.com/img/remote/1460000018761246);這篇文章主要深入數(shù)據(jù)結(jié)構(gòu)與算法在解決實際問題怎么運用和分析的,對于 IP...
摘要:為檢查長度為的列表,二分查找需要執(zhí)行次操作。最后需要指出的一點是高水平的讀者可研究一下二叉樹關(guān)于二叉樹,戳這里數(shù)據(jù)結(jié)構(gòu)與算法二叉樹算法常見練習(xí)在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 常見數(shù)據(jù)結(jié)構(gòu) 簡單數(shù)據(jù)結(jié)構(gòu)(必須理解和掌握) 有序數(shù)據(jù)結(jié)構(gòu):棧、隊列、鏈表。有序數(shù)據(jù)結(jié)構(gòu)省空間(儲存空間?。?無序數(shù)據(jù)結(jié)構(gòu):集合、字典、散列表,無序...
閱讀 1718·2021-10-28 09:32
閱讀 617·2021-09-24 09:47
閱讀 2941·2021-09-02 15:11
閱讀 2745·2021-08-09 13:46
閱讀 2896·2019-08-30 15:55
閱讀 1081·2019-08-30 15:54
閱讀 3315·2019-08-29 14:12
閱讀 818·2019-08-26 13:40