作者reader (讀者)
看板CSSE
標題Re: [心得] 資料存取
時間Thu Mar 10 03:39:04 2005
※ 引述《reader (讀者)》之銘言:
: 標題: Re: [心得] 資料存取
: 時間: Thu Mar 10 00:23:26 2005
:
: 推 Eventis:有什麼特殊的定址技巧嗎? 61.62.49.43 03/10
: → Eventis:因為維度上升對效能的影響似乎很大. 61.62.49.43 03/10
: → Eventis:不是很能從一維效能不錯, 61.62.49.43 03/10
: → Eventis:就能直接推到一維的一維的一維的..效能不錯吧? 61.62.49.43 03/10
嗯,維度上昇自然會對效能產生影響。
粗估一個 n 維而有 m 項資料的陣列,存取一項資料所需比對與指標
操作次數平均約為 n * ceil(log16(m)).
但相較於其他資料結構,這個數字是相當低的。
不過一般來說,真正的高維度操作並不常見。現在資料庫的庫表項欄
也只需要四維就可完全定位,一般操作更是只需要用一維或二維註標
就可以了。
類似 XML 的樹狀資料形式,是比較會有高維度操作,但是別的資料
結構和存取方式,也不見得比較快速和方便。
string hash 這東西也早就做了,字串可變成 32 bits hash value,
所以 d["html"][0]["body"][0]["table"][1]["tr"][3]["td"][2],
這樣的存取方式,想來是很容易就可以做到的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.222.173.26
1F:推 ledia:請問粗估的複雜度大概是怎麼算的呢? 140.112.30.55 03/10