中文字幕日韩一区二区_国产一区二区av_国产毛片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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩欧美精品在线播放 | 日韩欧美中文字幕在线观看 | 日韩欧美中文 | 欧美精品首页 | 中国一级特黄毛片大片 | 亚洲欧美一区二区三区国产精品 | 免费黄色av| 黄色欧美视频 | 夜夜草 | 国产成人精品久久二区二区 | 欧美日韩国产高清 | 蜜桃在线一区二区三区 | 久久噜噜噜精品国产亚洲综合 | 黄瓜av| 91久久精品一区二区二区 | 日韩高清电影 | 亚洲精品久久久久久一区二区 | 欧美精品福利 | 999精品视频在线观看 | a欧美 | 天堂中文av | 丝袜久久 | 久久精品99久久 | 国产高清免费视频 | 老司机免费视频 | h片在线看 | 一级在线观看 | 日韩国产精品一区二区三区 | 亚洲日韩中文字幕一区 | 一区二区久久精品 | 精品中文字幕视频 | 全免一级毛片 | 欧美在线一区二区三区 | av免费网址| 成人夜晚看av | 成人三级在线播放 | 午夜免费看视频 | 日韩午夜场 | 国产美女特级嫩嫩嫩bbb片 | 久久91精品国产一区二区三区 | 99reav|