日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

查找-------(HashCode)哈希表的原理

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查找-------(HashCode)哈希表的原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這段時間 在 準備軟件設計師考試??? 目的是想復習一下? 自己以前沒怎么學的知識??? 在這個過程中? 有了很大的收獲? 對以前不太懂得東西? 在復習的過程中? 有了很大程度的提高?

比如在復習 程序語言的時候 ?? 對編譯程序的處理過程和文法分析 有了全新的了解 作為一個半路出家? 沒學過程序語言這門課的我來說 ? 有一種醍醐灌頂的感覺 ? 以前在看 javaweb技術內幕是 ?

對里面提的javac 的編譯原理? 看的真的是 云里霧里?? 哈哈哈?? 想想 也是醉了? 最基礎的程序語言 都沒有看過? 會想去理解javac 的編譯原理

(編譯程序 中間的處理過程 有 詞法分析? 語法分析? 語義分析? 中間代碼生成? 代碼優化? 目標代碼生成?? 這次過程中?? 又有符號管理 和 出錯處理 倆個過程貫穿其中??? 除此之外 還有匯編、解釋程序系統等)

在 復習計算機網絡的時候?? 對 SMTP 有了全新的認識? 以前上課的時候只是粗略的學了一下? 很多東西并沒有搞懂?? 不知道? MIME是對 SMTP的 優化? 傳統的 SMTP 只能傳輸 ASCII類型的字符 ? MIME 及多用途Internet郵件擴充協議? 它的最初的設定是為了增加郵件的功能? 啊哈哈哈 ?? 還記得在 javaweb 中 的? 這種 文傳輸類型嗎 ? 如 ? text/html? 還有在文件上傳的時候? 添加的文件類型后綴?

?

?

?

*****************************************************

? 正文??? 關于?? 哈希表?? 在 java 的 體系在 聽的是 太多了? 但是 對于? hash表??? 以前理解的并不是很多? 只知道 這個很重要? 在很多的地方 都聽過? 但是對于 底層的原理? 自己 知道的真的是微乎其微?

?

哈希表? 在 數據結構的位置??

?作用在? 查找的篇章?? 關于查找?? 的內容在軟件設計師的教材上如下 和? 數據結構(嚴蔚敏篇的內容差不多)

?

靜態查找有 順序查找?? 折半查找?? 分塊查找(索引查找 )

動態查找有? 二叉排序樹 二叉平衡樹? B-樹?? B+ 樹?? .....

哈希表 的 設立? 也是為了便于查找??? 哈希表放在了靜態和 動態的查找的 最后? 為什么》???

說明哈希表的重要性??? 是的??

前面的不管是 靜態查找 還是 動態查找? 他們所記錄在結構中的相對位置 是隨機的 和記錄的關鍵字之間不存在確定的關系? 因此在查找的過程中? 需要進行一系列的比較才能找到??????? 要是理解這句話?? 差不多 就能明白 哈希表 設計的目的了吧??? (前面的兩種排序? 如我們傳統的排序? 是在不確定里面數據的情況下? 進行的比較?? 所以? 它的查找時間 是和N 有關 ?? 而 哈希表 想要做的是? 我能不能不進行比較你只要給我一個數據 我就知道 它在哈希表中的存儲位置 ? )雖然他也沒法做到? 查詢時間為 1??? 因為有沖突??

?

關于 哈希函數的構造方法? 如 直接定址法? 數字分析法? 平方取中法? 隨機數法 除留余數法等 這里就不一一說明了? 僅簡紹一下直接定址法 它的方法時??? 取關鍵字的某個線性函數值為哈希地址? 即: H(key)=key? 或 H(key)=a*key+b 其中a b 為常數? (這種哈希函數叫做自身函數?? ) 列如 統計每一個省份的人口數?? 可以將每個省份的編碼設為 關鍵字? 哈希函數取關鍵字本身 H(key)=key 這里著重說明一下 在構造哈希函數方法的之前? 首先要明確什么是 好的 哈希函數? 若對于關鍵字集合中的任一個關鍵字,經哈希函數映像到地址集合中任何一個地址的概率都是相等的 , 則稱此類哈希函數為均勻的哈希函數。? 簡而言之 就是 使用哈希函數的關鍵字? 能夠均勻的分配到哈希表的每一個位置?? 從而避免沖突

?

?

處理沖突的方法?

?

1? 開放定址法??

?

?


?2? 鏈地址法?? 它和開發地址發 有本質的差別?? 前一個是? 為了 避免沖突而設定?? 這一個 是 ”接受沖突”

?

?

?

三個因素 : 哈希函數?? 處理沖突的方法???? 哈希表的填裝因子

*****************************************************************************************************************************************************

上面說的 哈希表的內容?? 有很多不足之處???? 要想對哈希表 有更加深入的了解? 十分建議 去 看看數據結構的? 查找 的? 相關 概念??

?自己 在 學習java的時候?? 走了很多的彎路? 很多知識 都是 不太了解?? 知其然? 不知其所以然??? 這是因為 對 很多 計算機的 基礎概念的理解不太深入?? 或者是根本就不了解?? 在這種前提下? 還想不斷的去學習最前沿的技術?? 這顯然是 不太明智的????? 因為樓蓋的再高? 如果根基不穩的話? 很容易塌的? 這也是為什么? 對于考計算機研究生? 要考? 數據結構? 計算機網絡?? 操作系統?? 組成原理等 知識??

?這也是為什么校招那么喜歡問 一些基礎的知識???

因為對這些相對基礎的知識不太了解的話? 就很難去理解 那些已經封裝好的東西? 以及升華 ? 比如?? java虛擬機的知識? 要是對計算機的底層 不太了解的話? 理解java虛擬機的是相當吃力的? 當然 遠不止java這些......

?

所以 最后? 希望 那些半路出家的 人?? 能一起去 學一點 這些 相對 底層的東西吧? 雖然它們都相當枯燥 但是靜下心去學 還是會有所收獲的

轉載于:https://www.cnblogs.com/qinning/p/10850443.html

總結

以上是生活随笔為你收集整理的查找-------(HashCode)哈希表的原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。