c語言必背100代碼 學(xué)C語言,不學(xué)數(shù)據(jù)結(jié)構(gòu)和算法是不是絕對寫不出好程序?
學(xué)C語言,不學(xué)數(shù)據(jù)結(jié)構(gòu)和算法是不是絕對寫不出好程序?說實(shí)話,學(xué)習(xí)C這門低級語言,確實(shí)需要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和一些基本算法。如果您編寫Java,您可能不需要成為web添加、刪除、修改和查詢工程師??磩e人的代碼
學(xué)C語言,不學(xué)數(shù)據(jù)結(jié)構(gòu)和算法是不是絕對寫不出好程序?
說實(shí)話,學(xué)習(xí)C這門低級語言,確實(shí)需要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和一些基本算法。如果您編寫Java,您可能不需要成為web添加、刪除、修改和查詢工程師。看別人的代碼,注意代碼質(zhì)量。你仍然可以混日子,代碼可以達(dá)到合格的標(biāo)準(zhǔn),但如果你寫Java,你想在數(shù)據(jù)結(jié)構(gòu)和算法上取得卓越的成績,這仍然是非常重要的。寫C更是如此。它是一種追求性能和低水平的語言。您認(rèn)為在C開發(fā)金字塔的頂端,數(shù)據(jù)結(jié)構(gòu)和算法更為重要,而現(xiàn)在數(shù)據(jù)結(jié)構(gòu)和算法是一些復(fù)雜框架的基石。所以我覺得學(xué)習(xí)任何一門開發(fā)語言,成為一名優(yōu)秀的工程師都是必須要學(xué)會的
f(n)指的是一個和n有關(guān)的最大的函數(shù),比如上面的I平方,本質(zhì)上是一個和n的值有關(guān)的函數(shù),∑f(n)可以指的是∑I^2,或者∑I^K。本頁上面的兩個例子,以及任何與n值有關(guān)的函數(shù)(如果算法中o()函數(shù)的結(jié)果與n有關(guān),則它也是f(n))。這個公式實(shí)際上是對算法復(fù)雜度的描述,即∑f(n)這樣的函數(shù)。當(dāng)n是一個接近無窮大的正整數(shù),它的復(fù)雜性,或∑f(n)的極值時,極限是NF(n)級的無窮大
有一個遞歸公式
an=an-1 n*(n1)/2//計(jì)算次數(shù)
A1=1
所以an=1/2(∑(n2)∑n)
=1/2(n1)(2n1)/6 n(n1)/2)=n(n1)(n2)/6
,所以時間復(fù)雜度為O(n^3)