1.
? 表的查找效率取決于散列函數(shù)恰画、處理沖突的方法和裝填因子辙纬。顯然看彼,沖突的產(chǎn)生概率與裝填因子(表中記錄數(shù)與表長(zhǎng)之比)的大小成正比廊佩,即裝填得越滿(mǎn)越容易發(fā)生沖突,?
采用合適的處理沖突的方式避免產(chǎn)生聚集現(xiàn)象靖榕,也將提高查找效率标锄,例如用拉鏈法解決沖突時(shí)就不存在聚集現(xiàn)象,用線性探測(cè)法解決沖突時(shí)易引起聚集現(xiàn)象茁计,
2.?
? 哈希法把要存儲(chǔ)的值映射成哈希值鸯绿,根據(jù)hash值尋址存儲(chǔ),查找的時(shí)間復(fù)雜度為O(1)
? 但也可能出現(xiàn)不同的數(shù)據(jù)映射成相同的hash值的情況簸淀,這是哈希沖突瓶蝴。設(shè)計(jì)的比較好的哈希函數(shù)能夠減少哈希沖突,但是沖突是不可避免的租幕,沖突造成查找的時(shí)間增加舷手,因此我們普通的哈希表并不放滿(mǎn),而是定義一個(gè)負(fù)載因子劲绪。就是哈希表的容量除以哈希表的長(zhǎng)度男窟,一般為0.7左右。
? 影響哈希表查找速度的不是元素個(gè)數(shù)贾富,而是負(fù)載因子歉眷。
? 3.
? 線性探測(cè):本位置x被占據(jù),就尋找下一位x+1颤枪,直至找到空位置汗捡,所以:
? (注意看清題目“K的第一個(gè)字母在字母表中的序號(hào)”)
? D=4mode11=4,1次
? B=2mod11=2畏纲,1次
? T=20mod11=9扇住,1次
? M=13mod11=2->3,2次
? C=3mod11=3->4->5盗胀,3次
? I=9mod11=9->10艘蹋,2次
? K=11mod11=0,1次
? X=24mod11=2->3->4->5->6票灰,5次
? T=20mod11=9->10->0->1女阀,4次
? 9個(gè)數(shù)字宅荤,共20次,所以20/9。
4.? ? ? 問(wèn)的是“至少”,那么設(shè)表原來(lái)為空表阳惹。? ? ? 第一個(gè):直接找到坑,入坑琼了,1次逻锐;? ? ? 第二個(gè):和第一個(gè)同hash夫晌,找到坑被第一個(gè)給占了,找下一個(gè)昧诱,入坑晓淀,2次;? ? ? 第三個(gè):第一個(gè)被占了盏档,第二個(gè)也被占了凶掰,找第三個(gè),入坑蜈亩,3次懦窘;? ? ? 。稚配。畅涂。? ? ? 第n個(gè):n次;? ? ? 一共:(1+n)*n / 2 次? ? ? 【開(kāi)放地址法(除了隨機(jī)探測(cè))都是(1+n)*n / 2 次】? ?
5.?
? 有序表中所有元素以遞增或遞減方式排列道川,對(duì)數(shù)據(jù)之間的關(guān)系進(jìn)行了描述午衰,是一種邏輯結(jié)構(gòu)。
? 順序表是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)數(shù)據(jù)元素的線性結(jié)構(gòu)冒萄。
? 哈希表 用散列法存儲(chǔ)的線性表叫散列表臊岸。
? 單鏈表 用一組地址任意的存儲(chǔ)單元存放線性表中的數(shù)據(jù)元素,均只是一種存取結(jié)構(gòu)尊流,不是邏輯結(jié)構(gòu)帅戒。
6.
? 棧可以是順序存儲(chǔ)崖技,也可以是鏈?zhǔn)酱鎯?chǔ)蜘澜,與存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)。循環(huán)隊(duì)列是隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)响疚,鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)鄙信,用散列法存儲(chǔ)的線性表叫散列表,都與存儲(chǔ)結(jié)構(gòu)有關(guān)