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

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

php中使用最多的非Array莫屬了,那Array是如何實現(xiàn)的?在php內(nèi)部Array通過一個hashtable來實現(xiàn),其中使用鏈接法解決hash沖突的問題,這樣最壞情況下,查找Array元素的復(fù)雜度為O(N),最好則為1.
而其計算字符串hash值的方法如下,將源碼摘出來以供查備:
復(fù)制代碼 代碼如下:
static inline ulong zend_inline_hash_func(const char *arKey, uint nKeyLength)
{
register ulong hash = 5381;                                                   //此處初始值的設(shè)置有什么玄機么?
/* 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:對于以下函數(shù),仍有兩點不明:
hash = 5381設(shè)置的理由?
這種step=8的循環(huán)方式是為了效率么?

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

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

主站蜘蛛池模板: 欧美高清videosgratis高 | 国产精品久久久久AV麻豆 | 美女被强奷到抽搐的动态图 | 无人视频在线观看免费播放影院 | 最新亚洲人成网站在线影院 | 美女搜查官被高难度黑人在线播放 | 久久性色AV亚洲电影无码 | 男人扒开添女人下部口述 | 国产99久久 | 中文字幕在线观看网址 | 午夜向日葵视频在线观看 | 日韩欧美精品有码在线播放免费 | 网友自拍区视频精品 | 3D内射动漫同人资源在线观看 | 耽肉高h喷汁呻吟 | 亚洲精品伊人久久久久 | 久久久久久久久免费视频 | 在线精品一卡乱码免费 | 添加一点爱与你电视剧免费观看 | 久久久精品久久久久三级 | 暖暖日本在线手机免费完整版 | 久久日本精品在线热 | 国产学生在线播放精品视频 | 爽死你个放荡粗暴小淫货漫画 | 色老头色老太aaabbb | 国产精品成人久久久久A伋 国产精品成人观看视频免费 | 中文字幕成人免费高清在线 | 女教师跟黑人男朋友激情过后 | 野花韩国视频中文播放 | 一边捏奶头一边啪高潮会怎么样 | 国产小视频在线高清播放 | 色戒无删减流畅完整版 | 色欲久久99精品久久久久久AV | 亚洲中文字幕无码一久久区 | 轻点慢点1V2啊高H抽插 | 精品精品国产yyy5857香蕉 | 女生扒开下面 | bt成人社区| 国产婷婷色一区二区三区在线 | 午夜免费小视频 | 中文在线免费看视频 |