中文字幕日韩一区二区_国产一区二区av_国产毛片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實現的數組,轉載需保留來源!

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

主站蜘蛛池模板: 91色啪| 欧美在线观看一区 | 久久毛片| 日韩欧美在线视频 | 久久久久久久久久久久一区二区 | www国产成人免费观看视频,深夜成人网 | 日本一区二区三区四区 | 免费日韩av网站 | 色综合色综合网色综合 | 国产96色在线| 欧美激情精品久久久久久变态 | 日韩精品免费在线观看 | 亚洲网站在线观看 | 久久国产成人 | 美国a级毛片免费视频 | 国产999精品久久久 日本视频一区二区三区 | 4h影视| 日韩中文字幕在线观看视频 | 视频一区二区中文字幕 | 国产一区二区三区亚洲 | 国产一区二区在线免费观看 | 欧美综合国产精品久久丁香 | 亚洲日韩中文字幕一区 | 欧美精品一二三 | 一区二区高清 | 久久久久久久久毛片 | 精品国产欧美日韩不卡在线观看 | 91精品国产91久久久久游泳池 | 91伦理片 | www国产亚洲精品久久网站 | 欧美一级免费看 | 免费黄色网址视频 | 国产欧美精品一区二区 | 中文字幕日韩欧美一区二区三区 | 国产伦一区二区三区视频 | 国产精品福利网站 | 中文字幕在线第一页 | 国产精品视频一二三 | 成人片网址 | 久久成人一区 | 亚洲精品久久久蜜桃 |