python數(shù)據(jù)結(jié)構(gòu)之哈希表(散列表)

????? 散列偷遗,就是通過某種精心設(shè)計的算法將一段可能很長的數(shù)據(jù)轉(zhuǎn)化為較短的信息串(通常為固定長度)未檩,廣泛應(yīng)用于網(wǎng)頁傳輸中的協(xié)議矛辕,軟件完整性檢查囤屹,計算機(jī)安全領(lǐng)域等熬甚。

散列表是通過特定的哈希算法將一個大的集合映射出一個小的集合,從而的到一個更方便檢索的關(guān)鍵碼肋坚。

哈希算法有很多種形式例如數(shù)字分析法乡括,中平法,折疊法智厌,這里我采用的是除余法诲泌。

基本思路:

??? 取出列表中的每個元素除以待存貯的列表的長度取余數(shù) ,將余數(shù)作為關(guān)鍵碼铣鹏,由于是將一個大集合映射成為一個小集合所以必然出現(xiàn)沖突的情況敷扫,解決沖突我采用開地址的方法,當(dāng)發(fā)生沖突的時候诚卸,將索引加1葵第,直到找到一個空位置時,存入數(shù)據(jù)合溺。

開始代碼:

1. 準(zhǔn)備數(shù)據(jù)和存儲表卒密,為了實現(xiàn)字典,和方便獲取索引值(如果我的存儲列表為空棠赛,那么我是無法獲取索引值的)哮奇,我通過循環(huán)向列表里填充了-1


2. 用除余法定義散列函數(shù)膛腐,求出數(shù)值所對應(yīng)的關(guān)鍵碼,當(dāng)出現(xiàn)沖突時屏镊,用變量a 記錄依疼,每次發(fā)生沖突a+1,用于求出平均查找長度而芥,同時index 也要加1律罢,用于算出正確的關(guān)鍵碼,這時出現(xiàn)了一個情況:如果出現(xiàn)了一種較壞的情況index加到了超出列表的索引范圍。就應(yīng)該將索引值設(shè)為0棍丐,從頭開始存入數(shù)據(jù)



3. 根據(jù)數(shù)據(jù)在列表中檢索找到數(shù)據(jù)(算法和插入類似)误辑,返回數(shù)據(jù)的關(guān)鍵碼,沒找到返回flase



4.主函數(shù)和輸出



整體代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歌逢,一起剝皮案震驚了整個濱河市巾钉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秘案,老刑警劉巖砰苍,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阱高,居然都是意外死亡赚导,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門赤惊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吼旧,“玉大人,你說我怎么就攤上這事未舟∪Π担” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵裕膀,是天一觀的道長员串。 經(jīng)常有香客問我,道長昼扛,這世上最難降的妖魔是什么昵济? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮野揪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞧栗。我一直安慰自己斯稳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布迹恐。 她就那樣靜靜地躺著挣惰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上憎茂,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天珍语,我揣著相機(jī)與錄音,去河邊找鬼竖幔。 笑死板乙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拳氢。 我是一名探鬼主播募逞,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼馋评!你這毒婦竟也來了放接?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤留特,失蹤者是張志新(化名)和其女友劉穎纠脾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜕青,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苟蹈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了市咆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汉操。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蒙兰,靈堂內(nèi)的尸體忽然破棺而出磷瘤,到底是詐尸還是另有隱情,我是刑警寧澤搜变,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布采缚,位于F島的核電站,受9級特大地震影響挠他,放射性物質(zhì)發(fā)生泄漏扳抽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一殖侵、第九天 我趴在偏房一處隱蔽的房頂上張望贸呢。 院中可真熱鬧,春花似錦拢军、人聲如沸楞陷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽固蛾。三九已至结执,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間艾凯,已是汗流浹背献幔。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留趾诗,地道東北人蜡感。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像沧竟,于是被迫代替她去往敵國和親铸敏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354