遞歸

如何設(shè)計(jì)一個高效的DSA呢揖庄? 分而治之

不要一下解決 要分解問題成子問題 慢慢解決


舉一個很簡單的例子

時(shí)間復(fù)雜度是O(n) ?其實(shí)只需要看循環(huán)結(jié)構(gòu) ?沒有循環(huán)的地方復(fù)雜度肯定是O(1)


空間復(fù)雜度的兩種想法

1岩榆、輸入的A[] n 還有sum i

空間復(fù)雜度是O(n)

2系馆、輸入的A[] n 不計(jì)入 ?

只有sum i

我們更傾向于第二種

也就是這個算法的空間復(fù)雜度是O(1)

通常來講?

凡是空間復(fù)雜度的討論都是

除了輸入本身所占的空間之外

我們所需要的另加的用于計(jì)算所必須的空間


上述例子給了我們一個處理問題的方法

處理問題的方法:

這個平凡 指的是這個問題很容易解決了

縮減 指的是問題的規(guī)模小了 但是類型沒變?

因此可以一直這么處理下去 ?直到該大問題全部解決

遞歸算法分析的第一個技巧 遞歸跟蹤

遞歸跟蹤:


查看復(fù)雜度的時(shí)候 ?遞歸中調(diào)用自己的那個歸入下一層遞歸中 這一步的復(fù)雜度是O(1)不影響大局

當(dāng)前遞歸只關(guān)心A[n-1]這一步

可以看到的是每一步的sum(A,n)時(shí)間復(fù)雜度都是O(1)因?yàn)橹挥袀€加法

一共有n+1次遞歸 ?那么一共就有O(1)*(n+1)=O(n)

上述的遞歸是一個前遞歸產(chǎn)生一個后遞歸 ?也叫線性遞歸

為了更好的分析復(fù)雜的遞歸

我們給出另外一種方法 遞推方程

間接抽象,更適用于復(fù)雜的遞歸模式

如果遞歸



上述是隱式表達(dá) 由遞推方程和邊界條件就能解出顯式表達(dá)


另外一個例子:




另一個策略 分而治之




所謂的遞歸基 就是最簡單的情況 ?最容易解決的情況

就像下面的區(qū)間變成一個元素 區(qū)間上限下限相等

?這就是遞歸基

直到lo全部等于hi的時(shí)候才行

查看剛才的遞歸?

把遞歸調(diào)用本身去掉的話

沒有循環(huán) 也不包含任何隱式顯式迭代

所以要計(jì)算時(shí)間復(fù)雜度的話我們只需要把遞歸的個數(shù)算出來就行了

那么問題來了 ?:怎么算

從代數(shù)層面看 是列代數(shù)方程式

但是 我們不想 或者說 不喜歡你采用這種方式

我們從幾何層面看

每一層都是2的倍數(shù)對吧?

關(guān)鍵是最后一層是多少

最后一層是n 沒錯 為什么呢 ?因?yàn)樽詈笠恍械葍r(jià)于把每個元素羅列出來


最后一個元素其實(shí)就是n ?但是為了寫成 等比數(shù)列的形式呃展运。。蒂窒。也就是以2為倍數(shù)的幾何級數(shù)的形式

幾何級數(shù)的形式 時(shí)間復(fù)雜度與末項(xiàng)同階

再從遞歸方程的角度分析


MAX2問題?

首先第一個方法


最好和最壞情況比較次數(shù)都一樣都是2n-3

第二個方法 ?掃描一遍逐個比較


這個方法的好處在于 ?最好情況確實(shí)減少了時(shí)間 但是最壞情況并沒有改善

以上兩種情況都是只看了if語句 ?沒有關(guān)心里面的時(shí)間復(fù)雜度 或者說默認(rèn)了swap這個函數(shù)的復(fù)雜度是O(1)

以上算法的最壞情況沒有真正改進(jìn) ?接下來給出真正意義上的改進(jìn)算法


首先把整個數(shù)組劃為兩部分 ?然后分別求出這兩部分的最大值和次大值

X1L與X1R先比較 ?X1L勝出的話 ?X1L為整體最大值

X2L再和X1R比較 ?確定整體次大值

注意 這里X2R是不需要比較的

注意代碼語法 應(yīng)該是使用了引用的那個語法 &x1直接在函數(shù)里修改X1L X1R X2L X2R

自己寫一寫試試吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帖努,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子琳疏,更是在濱河造成了極大的恐慌有决,老刑警劉巖闸拿,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異书幕,居然都是意外死亡新荤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門台汇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苛骨,“玉大人,你說我怎么就攤上這事苟呐⊙髦ィ” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵掠抬,是天一觀的道長吼野。 經(jīng)常有香客問我,道長两波,這世上最難降的妖魔是什么瞳步? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮腰奋,結(jié)果婚禮上单起,老公的妹妹穿的比我還像新娘。我一直安慰自己劣坊,他們只是感情好嘀倒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著局冰,像睡著了一般测蘑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上康二,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天碳胳,我揣著相機(jī)與錄音,去河邊找鬼沫勿。 笑死挨约,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的产雹。 我是一名探鬼主播诫惭,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蔓挖!你這毒婦竟也來了夕土?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤时甚,失蹤者是張志新(化名)和其女友劉穎隘弊,沒想到半個月后哈踱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梨熙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年开镣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咽扇。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡邪财,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出质欲,到底是詐尸還是另有隱情树埠,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布嘶伟,位于F島的核電站怎憋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏九昧。R本人自食惡果不足惜绊袋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铸鹰。 院中可真熱鬧癌别,春花似錦、人聲如沸蹋笼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剖毯。三九已至圾笨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逊谋,已是汗流浹背墅拭。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涣狗,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓舒憾,卻偏偏與公主長得像镀钓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子镀迂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 【姓名】史敬凡 【派別】玉印派 【導(dǎo)師】袁文魁丁溅,王玉印 【分舵】縱橫思海 【舵主】羅汝錫 【導(dǎo)圖解說】 大家好,我...
    水瓶座_a761閱讀 381評論 3 4
  • 相信每個人對自己都有或多或少的認(rèn)知探遵,也都應(yīng)該知道自己應(yīng)該是屬于理性還是感性的那一個窟赏。 其實(shí)人是我見過最復(fù)雜而沒有辦...
    勇敢Planet閱讀 1,864評論 1 1
  • 愛情是一個永恒的話題妓柜。從女媧造了男人和女人開始,這就是一個個不得不說的傳奇涯穷。 有追求的詩歌“窈窕淑女棍掐,君子好逑”;...
    停云聽風(fēng)閱讀 279評論 11 9
  • 是不是曾經(jīng)感覺生活雜亂無章拷况,眼前一片混亂作煌?是的,但是這只是暫時(shí)的赚瘦。理一理自己的思緒粟誓,我們可以在力所能及的范圍內(nèi)讓自...
    傅青竹閱讀 204評論 0 0
  • 傍晚時(shí)分例行散步 沒有晚霞 他抬頭望著烏云籠罩的天空 感覺自己和身邊的街道建筑很渺小 就像紙盒里的塑料玩具 他甚至...
    阿維羅斯閱讀 160評論 0 0