国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)遵守國家法律
杭州市| 平罗县| 奉贤区| 健康| 黑龙江省| 始兴县| 贡山| 大化| 雷波县| 汉源县| 永福县| 长丰县| 巩义市| 霍州市| 乌苏市| 巫溪县| 岳阳市| 天台县| 枞阳县| 仁寿县| 昌宁县| 曲阜市| 竹溪县| 黄骅市| 凤凰县| 运城市| 湘潭县| 台东市| 阳谷县| 稷山县| 康保县| 广昌县| 二连浩特市| 青海省| 静宁县| 合肥市| 兰溪市| 灵丘县| 高安市| 文水县| 永定县|