大〇的表示法-簡(jiǎn)潔地表達(dá)計(jì)算時(shí)間和數(shù)據(jù)量之間的關(guān)系
如果是像數(shù)組中的插入一樣的操作挑豌,當(dāng)數(shù)據(jù)量n翻倍時(shí)安券,計(jì)算所花的時(shí)間也翻倍,那么這種性質(zhì)用$$O(n)$$表示氓英,讀作n的數(shù)量級(jí)侯勉。如果像鏈表這種數(shù)據(jù)量翻n倍,但是所花的計(jì)算時(shí)間沒有改變铝阐,那么則用o(1)址貌,來表示,讀作常數(shù)的數(shù)量級(jí)徘键。除此之外练对,當(dāng)數(shù)據(jù)量變?yōu)?,3倍時(shí)吹害,計(jì)算所花的時(shí)間增加4螟凭,9倍,那么這個(gè)用O(n^2)表示,
當(dāng)數(shù)據(jù)量變成2倍和從2倍到4倍增加的時(shí)間相同時(shí)候它呀,叫做O(log(n))螺男。對(duì)于大量數(shù)據(jù),進(jìn)行for循環(huán)是O(n)纵穿,進(jìn)行二重for是$O(n^2)$下隧。
字符串和字節(jié)串列
在python 3.x相對(duì)于 python 2.x 對(duì)于字符串進(jìn)行了大量的改變,其中unicode字符默認(rèn)谓媒,以前是在字符串前面加u'abc',對(duì)于在前面加‘b'表示字符串列淆院。
在字符串和字符串列結(jié)合時(shí)候,不管其怎樣想結(jié)合都要拋出錯(cuò)誤類型句惯,需要提前轉(zhuǎn)碼
>>'hello'+b"Alice" #錯(cuò)誤
>> "hello,"+b"Alice".decode("ASCII")
C語言中字符被定義為8bit土辩,而java是16bit,因此0~65535中可以表現(xiàn)Unicode字符宗弯,而C語言0~255只能表現(xiàn)ASCII字符和EBCDIC字符脯燃。