03_數(shù)據(jù)結(jié)構(gòu)簡介


下面我們通過一個問題來簡單介紹數(shù)據(jù)結(jié)構(gòu)
問題:用Python來保存一個班級的學(xué)生信息,要求有一下內(nèi)容,name , age, hometown。

1、用列表實現(xiàn):
[
    ("zhangsan", 24, "beijing")
    ("lisi", 24, "beijing")
    ("wangwu", 24, "beijing")
]

如果想取出張三的時候是:

for stu in stus:
    if stu(0) == "zhangsan"

需要遍歷每一個列表中的值,這樣的時間復(fù)雜度是O(n)。

2、用散列表,在Python中就是字典來存儲
{
'zhangsan':{'age':24, 'hometown':'beijings'}, 
'lisi':{'age':24, 'hometown':'beijings'},
'wangwu':{'age':24, 'hometown':'beijings'}
}

這時我們?nèi)〕銎渲械膹埲?br> stus['zhangsan']
可以直接通過鍵取出對應(yīng)的值,時間復(fù)雜度為O(1)。
所以,存儲同樣的數(shù)據(jù),使用列表和字典會對你訪問數(shù)據(jù)時候的便捷度產(chǎn)生了不同的結(jié)果。

簡單介紹內(nèi)存知識

內(nèi)存: 真正存儲數(shù)據(jù)并跟CPU打交道的地方

內(nèi)存是一個連續(xù)的存儲空間,就像進出超市時候的儲物柜,你存?zhèn)€東西,會給你一個小票,這個小票就是尋找你這個儲物柜的地址,你通過這個地址來訪問這個儲物柜。

比如:

0x03 0x04 0x05
0x06 0x07 0x08
0x09 0x10 0x11

當然,現(xiàn)實中的內(nèi)存地址比這個長的多。


總結(jié):

算法是解決問題的思路, 數(shù)據(jù)結(jié)構(gòu)是解決的數(shù)據(jù)是以什么樣的方式存在的。

程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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