暴雪雜湊演算法

來源:互聯網
上載者:User

參考文章:《Inside MoPaQ》chapter two

適用場合:存在一個龐大的字串數組,給定一個字串,判斷其是否在字串數組中;

主要思想:


代碼實現:

 #include          unsigned  seed = , index1 = , index2 =        (index1 = ; index1 < ; index1++           (index2 = index1, i = ; i < ; i++, index2 +=               unsigned              seed = (seed *  + ) %              temp1 = (seed & ) <<              seed = (seed *  + ) %              temp2 = (seed &              cryptTable[index2] = (temp1 |              unsigned  HashString( *lpszString, unsigned       unsigned  *key = (unsigned  *     unsigned  seed1 = , seed2 =            (*key !=           ch = toupper(*key++          seed1 = cryptTable[(dwHashType << ) + ch] ^ (seed1 +         seed2 = ch + seed1 + seed2 + (seed2 << ) +                  unsigned  MPQHashTableInit( **ppHashTable,        i =       *p =     MPQHASHTABLE *_pHashTable =                p = malloc(nTableLength *       (p ==          printf(                *ppHashTable =     _pHashTable = (MPQHASHTABLE *               (i = ; i < nTableLength; i++          (_pHashTable + i)->nHashA = -         (_pHashTable + i)->nHashB = -         (_pHashTable + i)->bExists =                       MPQHashTableFree( *       (pHashTable !=           pHashTable =            unsigned  MPQHashTableAdd( *lpszString,  *       unsigned  HASH_OFFSET = , HASH_A = , HASH_B =      unsigned  nHash =     unsigned  nHashA =     unsigned  nHashB =     unsigned  nHashStart = nHash %     unsigned  nHashPos =     MPQHASHTABLE *_pHashTable = (MPQHASHTABLE *               ((_pHashTable + nHashPos)->          nHashPos = (nHashPos + ) %                   (nHashPos ==                           (_pHashTable + nHashPos)->nHashA =     (_pHashTable + nHashPos)->nHashB =     (_pHashTable + nHashPos)->bExists =                    MPQHashTableIsExist( *lpszString,  *       unsigned  HASH_OFFSET = , HASH_A = , HASH_B =      unsigned  nHash =     unsigned  nHashA =     unsigned  nHashB =     unsigned  nHashStart = nHash %     unsigned  nHashPos =     MPQHASHTABLE *_pHashTable = (MPQHASHTABLE *           ((_pHashTable + nHashPos)->           (((_pHashTable + nHashPos)->nHashA == nHashA) &&              ((_pHashTable + nHashPos)->nHashB ==                                      nHashPos = (nHashPos +) %           (nHashPos ==                      - }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.