最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

二分查找法

2022-05-12 16:10 作者:學(xué)途壓力大  | 我要投稿

二分查找法是非常經(jīng)典的一種查找法,每個(gè)程序員都應(yīng)該理解并熟練掌握。

1. 算法使用前提:數(shù)組是有序數(shù)組,且無重復(fù)元素

2. 基本原理:

首先將要查找的元素(key)與數(shù)組的中間元素比較

1、如果key小于中間元素,只需要在數(shù)組的前一半元素中繼續(xù)查找

2、如果key和中間元素相等,匹配成功,查找結(jié)束

3、如果key大于中間元素,只需要在數(shù)組的后一半元素中繼續(xù)查找

3. 復(fù)雜度:時(shí)間復(fù)雜度O(logn);循環(huán)實(shí)現(xiàn)空間復(fù)雜度為O(1)

運(yùn)行速度O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2?)<O(n!)

4. 過程圖示:

假如我們使用二分查找法找5

1、首先定義頭尾指針,算出中間指針。本文中間數(shù)算法是向下取整mid=(start+end)/2|0。位運(yùn)算|0作用是向下取整。

所有的按位操作符的操作數(shù)都會(huì)被轉(zhuǎn)成補(bǔ)碼形式的有符號(hào)32位整數(shù)。也就是如果有小數(shù)則忽略。而0 轉(zhuǎn)為二進(jìn)制則為 000000......(32位) 。然后一一比較,還是原來上面的值。所以只是為了取整。


2、5比中間數(shù)10小。將high指針移動(dòng)到mid左邊(同理,如果大于就將low移動(dòng)到mid右邊)。然后計(jì)算出新的mid位置

此時(shí)key和中間元素相等,匹配成功,查找結(jié)束。

如果我們找的是2,2比mid還小,我們需要將high繼續(xù)移動(dòng)到mid左邊

此時(shí),再計(jì)算mid 為 0+0/2 還是 0 將 mid移動(dòng)到下標(biāo)為0的位置。然后進(jìn)行判斷,然后找到2。

算法實(shí)現(xiàn):

參考于:

https://www.bilibili.com/video/BV1LJ411X76n

https://blog.csdn.net/m0_66769266/article/details/124212178

https://network.51cto.com/article/688182.html

https://www.csdn.net/tags/MtTaMg4sOTgxNDk5LWJsb2cO0O0O.html

https://blog.51cto.com/u_15246373/3062445

https://blog.csdn.net/weixin_41489378/article/details/119701190

二分查找法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
河源市| 彰化县| 左贡县| 嘉鱼县| 泽普县| 蒙自县| 昭平县| 华阴市| 武隆县| 壤塘县| 中宁县| 大新县| 仪陇县| 湘乡市| 高州市| 昭平县| 庄浪县| 郧西县| 诸城市| 和林格尔县| 京山县| 鹤壁市| 晋江市| 特克斯县| 无棣县| 乐安县| 濉溪县| 石嘴山市| 高青县| 札达县| 怀宁县| 泰安市| 乌拉特中旗| 潼南县| 琼中| 牡丹江市| 阳朔县| 梅河口市| 全州县| 呼和浩特市| 通化县|