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

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實現的數組,轉載需保留來源!

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

主站蜘蛛池模板: 伊人影院香蕉久在线26 | 久久精品视频91 | yellow免费 | 女侠含泪巨臀迎合79 | 贵妃高h荡肉呻吟np杨玉环 | 手机在线播放成人亚洲影院电影 | 好男人好资源在线观看免费视频 | 村上里沙快播 | 黄小飞二人转 | 在线观看成人3d动漫入口 | 色哟哟网站入口在线观看视频 | 美女胸被男子强捏视频 | 忘忧草研究院一二三 | 最新国产在线视频在线 | 国产WW久久久久久久久久 | 国产成人在线小视频 | 日韩亚洲中文欧美在线 | 亚洲精品久久午夜麻豆 | 肉多的小说腐小说 | 永久免费观看视频 | 快播成电影人网址 | 日本男女动态图 | 我们中文在线观看免费完整版 | 久久综合给合久久狠狠狠… | 亚洲天堂视频网站 | 69SEX久久精品国产麻豆 | 一本大道手机在线看 | 性生大片免费看 | 姑娘日本大全免费观看版中文翻译 | 国产精品日韩欧美一区二区三区 | 欧美丰满熟妇无码XOXOXO | 动漫美女3d被爆漫画 | 久久电影午夜 | 国产精品免费一区二区三区视频 | 日本午夜精品一区二区三区电影 | 色哦色哦哦色天天综合 | 国产91无毒不卡在线观看 | adc免费观看 | 亚洲国产精品无码中文在线 | 欧美国产精品久久久乱码 | 久久怡红院国产精品 |