91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

二分查找的原理和用法

發布時間:2021-06-22 14:50:20 來源:億速云 閱讀:140 作者:chen 欄目:大數據

本篇內容主要講解“二分查找的原理和用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“二分查找的原理和用法”吧!

概念

二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結構,而且表中元素按關鍵字有序排列

原理分析

前提

必須按照“大到小”或“小到大”的順序存儲的數組列表結構

查找方法

  • 列表進行折半, 取中間元素與目標值進行比較,判斷后決定舍去前半段或后半段,最終找到相等值

二分查找的原理和用法

  • 定義數組長度12,存儲1-12的整數,的查找過程示意圖

  1. 找到值為3都索引

二分查找的原理和用法

  1. 找到值為13所在下標

二分查找的原理和用法

  1. 找到值為11所在下標

二分查找的原理和用法

復雜度分析

實現方式

遞歸法

public int binarySearch(int[] arrays, int searchTag, int left, int right){
	int mid = (right + left) / 2;
	if (mid < 0 || mid >= arras.length){
		return -1;
	}
	if (arrays[mid] == searchTag){
		return mid;
	}
	if (arrays[mid] > searchTag){
		right = mid;
	} else if (arrays[mid] < searchTag){
		left = mid + 1;
	}
	if (left >= right){
		return -1;
	}
	return binarySearch(arrays, searchTag, left, right);
}

循環法

public int binarySearch(int[] arrays, int searchTag){
    int right = arrays.length, left = 0;
    while (left < right){
        int mod = (right + left) / 2;
        if (arrays[mid] == searchTag){
            return mid;
        } else if (arrays[mid] > searchTag){
            right = mid;
        } else {
            left = mid + 1;
        }
    }
    return -1;
}

到此,相信大家對“二分查找的原理和用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵宝市| 北宁市| 五常市| 周口市| 九台市| 博客| 西畴县| 南漳县| 自治县| 永川市| 巴彦淖尔市| 陵水| 平南县| 隆林| 冀州市| 兴宁市| 屏边| 山西省| 龙井市| 城口县| 泾川县| 临西县| 铜山县| 临江市| 长治县| 苗栗县| 澄城县| 海南省| 巢湖市| 闸北区| 万全县| 鄯善县| 横峰县| 苏尼特右旗| 龙胜| 临沭县| 清徐县| 台湾省| 抚州市| 黔西| 澳门|