聊algo

algo(計(jì)算) -> 會(huì)關(guān)注計(jì)算的步驟數(shù) -> 不同的結(jié)構(gòu)會(huì)影響步數(shù)

  • 線性表(數(shù)組,鏈表)
  • 樹(shù)(樹(shù),二叉樹(shù))
  • 哈希

與數(shù)學(xué)思想相關(guān)
漢諾塔問(wèn)題 -> 歸納

數(shù)學(xué)解法沒(méi)考慮的 -> 步數(shù),爆棧

  • 斐波那契數(shù)列
    f(0) = 1
    f(1) = 1
    f(n) = f(n - 1) + f(n - 2)

遞歸下去會(huì)有很多重復(fù)計(jì)算和stackoverflow

  • 循環(huán)(迭代)代替遞歸(解決stackoverflow)
def recsum(x):
  if x == 1:
    return x
  else:
    return x + recsum(x - 1)
recsum(5)
5 + recsum(4)
5 + (4 + recsum(3))
5 + (4 + (3 + recsum(2)))
5 + (4 + (3 + (2 + recsum(1))))
5 + (4 + (3 + (2 + 1)))
5 + (4 + (3 + 3))
5 + (4 + 6)
5 + 10
15

循環(huán)(迭代)

for i in range(6):
  sum += i

尾調(diào)用
把結(jié)果先算出來(lái),作為參數(shù)傳到遞歸里

def tailrecsum(x, running_total=0):
  if x == 0:
    return running_total
  else:
    return tailrecsum(x - 1, running_total + x)

前提 寫(xiě)得出來(lái)

  • 緩存 (減少重復(fù)計(jì)算)
    用個(gè)哈希表把計(jì)算過(guò)的結(jié)構(gòu)緩存
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Python語(yǔ)言特性 1 Python的函數(shù)參數(shù)傳遞 看兩個(gè)如下例子,分析運(yùn)行結(jié)果: 代碼一: a = 1 def...
    時(shí)光清淺03閱讀 572評(píng)論 0 0
  • 1. 語(yǔ)言基礎(chǔ) 1.1 C++的四種類型轉(zhuǎn)換: const_cast => 用于將const變量轉(zhuǎn)為非const;...
    SunnyQjm閱讀 1,306評(píng)論 0 0
  • Table of Contents Python語(yǔ)言特性1 對(duì)Python的理解(對(duì)比其他語(yǔ)言)2 什么是Pyth...
    Jeese_zhao閱讀 2,915評(píng)論 0 5
  • 邏輯回歸如何解決過(guò)擬合問(wèn)題?過(guò)擬合大部分原因是由于特征過(guò)多導(dǎo)致的,我們可以使用以下兩種方法來(lái)解決過(guò)擬合的問(wèn)題。 減...
    b0591d0dc6ba閱讀 4,640評(píng)論 0 6
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 8,247評(píng)論 0 4

友情鏈接更多精彩內(nèi)容