• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 7, comments - 13, trackbacks - 0, articles - 37
               :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理

            字符串的算法

            Posted on 2008-10-16 15:04 歲月流逝 閱讀(197) 評論(0)  編輯 收藏 引用
            字符串的算法一般大公司都會考到,我們首先要想到高效的hash。如百度查找一組字符串是否出現在某個文本中,這個不是考什么kmp,他們想聽到的是hash。趨勢科技考的是從某個文本中刪除一組字符串,我想也是要hash吧。 1 概述 鏈表查找的時間效率為O(N),二分法為log2N,B+ Tree為log2N,但Hash鏈表查找的時間效率為O(1)。 設計高效算法往往需要使用Hash鏈表,常數級的查找速度是任何別的算法無法比擬的,Hash鏈表的構造和沖突的不同實現方法對效率當然有一定的影響,然 而Hash函數是Hash鏈表最核心的部分,本文嘗試分析一些經典軟件中使用到的字符串Hash函數在執行效率、離散性、空間利用率等方面的性能問題。 2 經典字符串Hash函數介紹 先提一個簡單的問題,如果有一個龐大的字符串數組,然后給你一個單獨的字符串,讓你從這個數組中查找是否有這個字符串并找到它,你會怎么做?有一個方法最簡單,老老實實從頭查到尾,一個一個比較,直到找到為止,我想只要學過程序設計的人都能把這樣一個程序作出來,但要是有程序員把這樣的程序交給用戶,我只能用無語來評價,或許它真的能工作,但...也只能如此了。最合適的算法自然是使用HashTable(哈希表),先介紹介紹其中的基本知識,所謂Hash,一般是一個整數,通過某種算法,可以把一個字符串"壓縮" 成一個整數,這個數稱為Hash. HDOJ-1800題目分析 除去馬甲,本題的本質是——求相同級別(level)的人最多是幾個。如果level的范圍不大的話(64位整數可以表示)——本題很簡單,簡單貪心本題的難點:level的范圍較大,需用大數或者字符串比較(去首0)效率較高、編程簡單的方法:Hash! 此外,字典樹也是不錯的選擇 http://192.168.100.16/showproblem.php?pid=1800 #include "stdio.h" #include "memory.h" #define MAXN 10000 inline int ELFhash(char *key) { unsigned long h = 0; unsigned long g; while( *key ) { h =( h<< 4) + *key++; g = h & 0xf0000000L; if( g ) h ^= g >> 24; h &= ~g; } return h; } int hash[MAXN],count[MAXN]; int maxit,n; inline void hashit(char *str) { int k,t; while( *str == '0' ) str++; k = ELFhash(str); t = k % MAXN; while( hash[t] != k && hash[t] != -1 ) t = ( t + 5 ) % MAXN; if( hash[t] == -1 ) count[t] = 1,hash[t] = k; else if( ++count[t] > maxit ) maxit = count[t]; } int main() { char str[100]; while(scanf("%d",&n)!=EOF) { memset(hash,-1,sizeof(hash)); for(maxit=1,gets(str);n>0;n--) { gets(str); hashit(str); } printf("%d\n",maxit); } }
            久久久久99精品成人片直播| 久久人人爽人人爽人人爽| 久久91精品国产91久久麻豆| 婷婷久久综合九色综合98| 久久精品国产亚洲av瑜伽| 欧美日韩精品久久免费| 香蕉久久夜色精品升级完成| aaa级精品久久久国产片| 久久久精品久久久久久| 国产毛片欧美毛片久久久| 人人狠狠综合久久亚洲婷婷| 午夜精品久久久久久影视riav| 久久婷婷激情综合色综合俺也去| 99久久精品免费看国产| 久久综合久久自在自线精品自| 成人亚洲欧美久久久久| 日韩AV无码久久一区二区 | 国产精品视频久久| 久久久精品久久久久久| 精品久久久久久| 久久久久亚洲av综合波多野结衣| 一级做a爱片久久毛片| 亚洲精品高清国产一线久久| 久久国产精品二国产精品| 国产精品久久久久久一区二区三区| 久久91精品综合国产首页| 国产精品久久99| 色偷偷久久一区二区三区| 久久久久人妻一区二区三区 | 国产成人精品三上悠亚久久| 伊人久久大香线蕉精品| 国产精品久久影院| 精品久久久久久无码专区| 日韩人妻无码一区二区三区久久 | 久久久久国产精品| 97久久超碰国产精品旧版| 精品国际久久久久999波多野| 麻豆av久久av盛宴av| 热re99久久精品国99热| 香蕉久久夜色精品升级完成| 久久99热这里只有精品国产|