天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP中用hash實(shí)現(xiàn)的數(shù)組

php中使用最多的非Array莫屬了,那Array是如何實(shí)現(xiàn)的?在php內(nèi)部Array通過(guò)一個(gè)hashtable來(lái)實(shí)現(xiàn),其中使用鏈接法解決hash沖突的問(wèn)題,這樣最壞情況下,查找Array元素的復(fù)雜度為O(N),最好則為1.
而其計(jì)算字符串hash值的方法如下,將源碼摘出來(lái)以供查備:
復(fù)制代碼 代碼如下:
static inline ulong zend_inline_hash_func(const char *arKey, uint nKeyLength)
{
register ulong hash = 5381;                                                   //此處初始值的設(shè)置有什么玄機(jī)么?
/* variant with the hash unrolled eight times */
for (; nKeyLength >= 8; nKeyLength -= 8) {                         //這種step=8的方式是為何?
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;                         //比直接*33要快
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
}
switch (nKeyLength) {
case 7: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */                             //此處是將剩余的字符hash
case 6: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 5: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 4: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 3: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 2: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */                    
case 1: hash = ((hash << 5) + hash) + *arKey++; break;
case 0: break;
EMPTY_SWITCH_DEFAULT_CASE()
}
return hash;//返回hash值
}

ps:對(duì)于以下函數(shù),仍有兩點(diǎn)不明:
hash = 5381設(shè)置的理由?
這種step=8的循環(huán)方式是為了效率么?

php技術(shù)PHP中用hash實(shí)現(xiàn)的數(shù)組,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲qingse中文字幕久久 | 国产精品成久久久久三级四虎 | 好色女博士 | 小雪奶水涨翁工帮吸的推荐语录 | 紧致肉肉高h| 暖暖 免费 高清 日本 在线 | 啊好深啊别拔就射在里面 | 国产成人在线观看免费网站 | 亚洲AV午夜福利精品香蕉麻豆 | 校花在公车上被内射好舒服 | 日日夜夜狠狠干 | 农村脱精光一级 | 日本视频久久 | 试看2分钟AA片 | 国产成人精品综合在线 | 狠狠撩色姣姣综合久久 | 主播蜜汁丝袜精品自拍 | 另类重口bdsm日本tv | 一个人的视频在线观看免费观看 | 俄罗斯乌克兰战争原因 | 旧里番YY6080在线播放 | 日本又黄又爽又色又刺激的视频 | 中文字幕伊人香蕉在线 | 97caopeng| 国产精品爽爽久久久久久无码 | 99久久精品费精品国产一区二 | 欧美亚洲日韩一道免费观看 | 性满足久久久久久久久 | MATURETUBE乱妇| 国语大学生自产拍在线观看 | 亚洲专区区免费 | 边做边爱播放3免费观看 | 国产对白精品刺激一区二区 | 在线观看永久免费网站 | 男同志china免费视频 | 亚洲国产免费观看视频 | 国产人人为我我为人人澡 | 国产精品婷婷久青青原 | 亚洲精品国产在线观看 | 姐姐不~不可以动漫在线观看 | 97人妻碰视频在线观看 |