4 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
擴(kuò)展性啊,擴(kuò)展性
如果又要往people
里面放一個(gè)age
或者addr
字段的話(huà),你的_people
怎么辦?
別說(shuō)約定|
之類(lèi)的,那都是妖術(shù),妖術(shù)啊少年!

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
首先樓主沒(méi)有明白散列函數(shù)的意義散列函數(shù)的意義在于提高查找的效率
一段數(shù)據(jù)結(jié)構(gòu)可能很大,比如100W條數(shù)據(jù),其中以A開(kāi)頭的數(shù)據(jù)有10W條,查找Abc
如果沒(méi)有散列函數(shù),你要找到這個(gè)數(shù)據(jù),可能需要遍歷100W條數(shù)據(jù),才能找到,但是如果有散列函數(shù),
比如散列首字母,那么只要查找hash表,就可以減少查找的目標(biāo)變成10W條
那么就可以確定最多只需要遍歷這10W條數(shù)據(jù)就可以了

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
你這里其實(shí)提了兩個(gè)問(wèn)題
散列函數(shù)有什么用?
散列函數(shù)起到一個(gè)映射(mapping 或者投映 project)的作用。試想一下,隨著開(kāi)發(fā)后面如果出現(xiàn)了處理重名的需求時(shí)候你要怎么改。用散列函數(shù)那么只需要在函數(shù)中修改一下映射關(guān)系即可。
為什么不用全名?
用全名也是可行的,它例子這里姓氏都不一樣,那么只用一個(gè)字符可以減少比較次數(shù)。(不太符合常理,個(gè)人覺(jué)得這個(gè)例子不是很好)
添加回答
舉報(bào)