一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP中用hash實現的數組

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

php技術PHP中用hash實現的數組,轉載需保留來源!

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

主站蜘蛛池模板: 婷婷伊人 | 国产片欧美片亚洲片久久综合 | 成人免费观看视频高清视频 | 黄色免费在线观看视频 | 最新国产精品亚洲 | 久久精品国产亚洲婷婷 | 久久www免费人成看片色多多 | 亚洲精品无码专区在线播放 | 久久99爰这里有精品国产 | 成人福利视频网 | 中文字幕天天躁日日躁狠狠躁97 | 国产一级在线观看www色 | 亚洲成在人天堂一区二区 | 中文字幕久久久久久精 | 九九九九九九伊人 | 一本大道久久香蕉成人网 | 亚洲欧美一级视频 | 国产精品 视频一区 二区三区 | 77788色淫网站免费观看 | 青青热久久国产久精品 | 热re91久久精品国产91热 | 最新欧美精品一区二区三区 | 国产色婷婷精品综合在线观看 | 四虎国产精品永久在线播放 | 久久98精品久久久久久婷婷 | 综合伊人久久在一二三区 | 在线播放亚洲精品富二代91 | 91精品福利观看 | 国产色婷婷精品综合在线 | 国产区精品福利在线观看精品 | 久草一级片 | 国产成人久久蜜一区二区 | 婷婷六月综合网 | 亚洲国产精选 | 久久七国产精品 | 国产成人乱码一区二区三区 | 国产一二三四区在线观看 | 亚洲一区小说区中文字幕 | 亚洲国产精品一区二区三区 | 很黄很色视频 | 玖玖爱视频在线 |