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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

哈希表查找速度为什么那么快?快在哪里了?

發布時間:2025/7/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 哈希表查找速度为什么那么快?快在哪里了? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看數組存儲數據是怎么樣的。

現在有一個數組,它里面每個單元存儲的是數據的地址

這叫指針數組吧,假設它有100個單元

我們稱他為p[100]

現在我想把一百個數據(地址)放到里面

我們想把某個數據放到p的第幾個單元完全是由

我們決定的,可以說想怎么放就怎么放

是一種亂放,既然是亂放,那么查找起來就比較耗時。

?

哈希表是怎么存儲數據的呢?

哈希表同樣是一個指針數組。

同樣需要存儲100個數據,需要的就不是100個單元了,因為哈希表要把某個數據存放在某個單元不是隨機的一個過程,而是算出來的,這個算法叫哈希函數

比如要存儲一個數據對

張三 1882356

李四 ?23456789

王五 ?58856456

張三經過哈希函數算出來的值是138,那么哈希表最少需要138個單元,因為張三對應的數據1882356要存儲在指針數組的p[138]的位置上。

李四經過哈希函數算出來的值是500,那么2356789這個數據就要存放在p[500]這個位置上。

所以你明白了,"數據的地址放在指針數組的哪個單元格是算出來的,是有跡可尋的,并不是想放在哪里就放在哪里"

那查找的時候就好查找了,你要查找張三對應的數據,

直接把張三用哈希函數算一下,得到138,哦 張三的數據就在p[138]這個位置上,所以一下就找到了。

?

哈希表是一個key- value的數據對,p是一個指針數組,用來存放value的地址,那么key和value的關系是下面這樣的。

p[f(key)]=&value

?

可以看出哈希表有時候會浪費很大空間的,比如上面張三 李四 王五那個例子 如果按照哈希表存儲要定義一個500個大小的指針數組。怎么解決這個問題呢?我再看看書。

?

轉載于:https://www.cnblogs.com/yfish/p/7083084.html

總結

以上是生活随笔為你收集整理的哈希表查找速度为什么那么快?快在哪里了?的全部內容,希望文章能夠幫你解決所遇到的問題。

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