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

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

【數(shù)據(jù)結(jié)構(gòu)與算法】二分法丨有序數(shù)組中二分法的使用

2021-07-03 20:11 作者:C語言編程__Plus  | 我要投稿

?

基本二分法的描述

二分搜索(英語:binary search),也稱折半搜索對數(shù)搜索,是一種在有序數(shù)組中查找某一特定元素的搜索算法。搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結(jié)束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。如果在某一步驟數(shù)組為空,則代表找不到。這種搜索算法每一次比較都使搜索范圍縮小一半。

復(fù)雜度分析:最壞情況下,關(guān)鍵詞比較次數(shù)為log2(n+1),且期望時間復(fù)雜度為O(log2n);

作者:暴走的朝天椒,原文鏈接:https://www.jianshu.com/p/39de40ff3368

那么,有序真的是所有問題求解時使用二分的必要條件嗎?

答案是:不

只要正確構(gòu)建左右兩側(cè)的淘汰邏輯,你就可以使用二分法,那我們現(xiàn)在通過以下例子來了解二分法。

1、在一個有序數(shù)組中,找某個數(shù)是否存在

2、在一個有序數(shù)組中,找>=某個數(shù)最左側(cè)的位置

3、在一個有序數(shù)組中,找<=某個數(shù)最右側(cè)的位置

4、局部最小值問題

在一個有序數(shù)組中,找某個數(shù)是否存在

在一個有序數(shù)組中,找某個數(shù)是否存在.png??

在一個有序數(shù)組中,找大于等于某個數(shù)最左側(cè)的位置

在一個有序數(shù)組中,找大于等于某個數(shù)最左側(cè)的位置 .png??

在一個有序數(shù)組中,找小于等于某個數(shù)最右側(cè)的位置

在一個有序數(shù)組中,找小于等于某個數(shù)最右側(cè)的位置 .png

局部最小值問題

局部最小可以使用二分法完成,定義局部最小時隱含的規(guī)律即:一個不存在相同元素的數(shù)組一定存在局部最小值,因為只需要找到一個局部最小值,這樣就可以使用二分查找將數(shù)組規(guī)模逐漸減小。

1、首先判斷數(shù)組第一個值是否小于右邊的值,若小于,則局部最小值為第一個數(shù);否則進(jìn)行下一步;

2、判斷數(shù)組的最后一個值是否小于左邊的值,若小于,則局部最小值為最后一個數(shù);否則進(jìn)行下一步;

3、通過二分法來驗證除首位和末尾位置的數(shù)組數(shù)據(jù)的局部最小值,若某值左右兩邊的值都大于該值,那么該值就屬于局部最小值;否則繼續(xù)通過二分法進(jìn)行查找。

另外,對現(xiàn)在我們的大多數(shù)小伙伴來說編程不知道如何入門,如何打好基礎(chǔ)!栽一棵樹最好的時間是十年前,其次是現(xiàn)在。對于準(zhǔn)備學(xué)習(xí)編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!

微信公眾號:C語言編程學(xué)習(xí)基地

整理分享(多年學(xué)習(xí)的源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!


【數(shù)據(jù)結(jié)構(gòu)與算法】二分法丨有序數(shù)組中二分法的使用的評論 (共 條)

分享到微博請遵守國家法律
简阳市| 大洼县| 平罗县| 沂水县| 衡山县| 通山县| 平阴县| 永吉县| 门源| 竹北市| 通榆县| 乌拉特中旗| 施甸县| 萨迦县| 绥阳县| 黄冈市| 姜堰市| 衡山县| 甘德县| 尚义县| 阳西县| 郑州市| 孝感市| 庆城县| 日土县| 盘山县| 呼伦贝尔市| 衡南县| 唐河县| 马关县| 泸西县| 宁强县| 庆安县| 郎溪县| 望城县| 龙江县| 太湖县| 敖汉旗| 承德县| 永定县| 丰台区|