07-7.5.1 散列表的基本概念

👋 Hi, I’m @Beast Cheng
👀 I’m interested in photography, hiking, landscape…
🌱 I’m currently learning python, javascript, kotlin…
📫 How to reach me --> 458290771@qq.com


喜歡《數據結構》部分筆記的小伙伴可以訂閱專欄,今后還會不斷更新。🧑?💻
感興趣的小伙伴可以點一下訂閱、收藏、關注!🚀
謝謝大家!🙏

散列表、散列函數

散列表(哈希表,Hash Table):是一種數據結構

  • 特點是:可以根據數據元素的關鍵字計算出它在散列表中的存儲地址

散列函數(哈希函數)Addr = H(key)建立了 “關鍵字” -> “存儲地址” 的映射關系

![[Pasted image 20240709171241.png]]

理想情況下,在散列表中查找一個元素的時間復雜度為 O ( 1 ) O(1) O(1)
查找元素 19:根據散列函數計算出元素的存儲地址 = 19 % 13 = 6 =19\%13=6 =19%13=6

沖突、同義詞

沖突(碰撞):在散列表中插入一個數據元素時,需要根據關鍵字的值確定其存儲地址,若該地址已經存儲了其他元素,則稱這種情況為“沖突(碰撞)”

如何減少“沖突”?

  • 構造更適合的散列函數,讓各個關鍵字盡可能地映射到不同的存儲位置,從而減少“沖突”

那么,如何構造更適合的散列函數呢?

  • 拉鏈法(又稱鏈接法、鏈地址法):把所有“同義詞”存儲在一個鏈表中
  • 開放定址法:如果發生“沖突”,就給新元素找另一個空閑位置

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43717.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

指令v-el的作用是什么

在Vue.js的早期版本中(特別是Vue 1.x版本),v-el 指令被用來給元素注冊引用信息(即DOM元素的引用)。這樣,開發者就可以在Vue實例的方法中直接訪問到這個DOM元素。然而,需要注意的是,從…

28.IP核理論知識(Xilinx)

(1)ip核是什么? IP(Intellectual Property)即知識產權,在半導體產業中,將IP核定義為“用于ASIC或FPGA中的預先設計好的電路功能模塊”,簡而言之,這里的IP即電路功能模塊。…

Element輪播圖組件切換太單調?手把手帶你重寫切換效果

前言: 最近在逛山東博物館網站的時候,發現該網站主頁淡入淡出的輪播圖非常的優雅,所以就想來復刻一下,也算是對組件進行了二次的封裝和修改 工具準備: Vue3Element Plus走馬燈組件 注意事項: Element …

GPX文件的元素內容詳解

GPX文件的來源 GPX文件(GPS eXchange Format)是一種用于存儲GPS數據的開放標準格式,它可以包含航路點、軌跡和路線等信息。這些文件通常來源于GPS設備、戶外活動追蹤應用程序、地圖服務或用戶之間的數據共享。用戶可以通過各種軟件和硬件設備…

Python爬蟲:基礎爬蟲架構及爬取證券之星全站行情數據!

爬蟲成長之路(一)里我們介紹了如何爬取證券之星網站上所有A股數據,主要涉及網頁獲取和頁面解析的知識。爬蟲成長之路(二)里我們介紹了如何獲取代理IP并驗證,涉及了多線程編程和數據存儲的知識。此次我們將在…

網絡編程學習之tcp

按下*(星號)可以搜索當前光標下的單詞。 Tcp編程的過程 打開網絡設備 Bind:給服務地址把ip號和端口號連接進去 Tcp是有狀態的 Listen是進入監聽狀態,看有沒有客戶端來連接服務器 Tcp比udp消耗過多資源 Upd類似于半雙工&#…

D50SB100-ASEMI逆變焊機專用D50SB100

編輯:ll D50SB100-ASEMI逆變焊機專用D50SB100 型號:D50SB100 品牌:ASEMI 封裝:DSB-5 批號:2024 現貨:50000 正向電流(Id):50A 反向耐壓(VRRM&#xf…

編程語言沒落了?揭開真相的四大謎團、五大趨勢、六大挑戰與七大未來

編程語言沒落了?揭開真相的四大謎團、五大趨勢、六大挑戰與七大未來 在科技飛速發展的今天,有人宣稱編程語言已經沒落,這一觀點似乎讓人困惑不已。然而,真相究竟如何?本文將從四個方面揭示編程語言的現狀,…

【AIGC】二、mac本地采用GPU啟動keras運算

mac本地采用GPU啟動keras運算 一、問題背景二、技術背景三、實驗驗證本機配置安裝PlaidML安裝plaidml-keras配置默認顯卡 運行采用 CPU運算的代碼step1 先導入keras包,導入數據cifar10,這里可能涉及外網下載,有問題可以參考[keras使用基礎問題…

echarts中tooltip添加點擊事件代碼示例

echarts中tooltip添加點擊事件代碼示例_javascript技巧_腳本之家 點擊事件無法使用this 或者 this無法使用:

Qt圖形編輯類使用總結

Qt的圖形編輯通常會涉及以下三個類:QGraphicsView類、QGraphicsScene類及QGraphicsItem類。 QGraphicsView 是構建復雜圖形用戶界面的強大工具,尤其適用于那些需要動態更新、可交互的2D圖形化應用程序,如圖表繪制、流程圖編輯器、游戲地圖顯示等等。通過結合使用 QGraphics…

13--memcache與redis

前言:數據庫讀取速度較慢一直是無法解決的問題,大型網站應對的方式主要是使用緩存服務器來緩解這種情況,減少數據庫訪問次數,以提高動態Web等應用的速度、提高可擴展性。 1、簡介 Memcached/redis是高性能的分布式內存緩存服務器…

ret2csu簡單總結

一個比較進階的rop利用方式。 Why ret to csu? 當程序給的gadget不夠,或者輸入長度受限時,可以考慮利用csu中的眾多gadget以及一個call指令來劫持控制流。 __libc_csu_init 匯編源碼: .text:0000000000400790 ; void __fastcall _libc_c…

無人直播賺錢的底層邏輯是什么?一文揭曉!

當前,網絡直播已經成為各類商家提高曝光和引流獲客的主要渠道之一,這在為商家帶來新機遇的同時,也讓他們因人手不足或資金匱乏等原因而陷入無人問津窘境之中。在此背景下,無人直播軟件一經出現,便引起了眾多商家的關注…

多器官功能障礙綜合征

多器官功能障礙綜合征(Multiple Organ Dysfunction Syndrome,MODS)是指機體在遭受嚴重感染、創傷、休克、大手術等急性疾病過程中,同時或序貫發生兩個或兩個以上器官功能障礙,以致不能維持內環境穩定的臨床綜合征。 MO…

28V飛機庫維修電源在飛機庫中的作用

飛機庫作為飛機停放和維護的重要場所,其設施的完善和電源系統的穩定運行是保證飛機正常運行的前提。隨著我國航空事業的飛速發展,飛機維修行業面臨著越來越大的挑戰。在飛機維修過程中,電源系統作為關鍵組成部分,其穩定性和可靠性…

網絡服務與應用-廣域網技術(華為ip認證學習筆記)

網絡服務與應用 FTP:文件傳輸協議 TCP 傳輸 20 端口發送,21 接收端口 1. 采用 C/S 結構 2. 傳輸模式 (1)ASCII 模式:傳輸文本 (2)二進制模式:傳輸非文本 3. 工作模式 (1&…

LeetCode題練習與總結:尋找旋轉排序數組中的最小值--153

一、題目描述 已知一個長度為 n 的數組,預先按照升序排列,經由 1 到 n 次 旋轉 后,得到輸入數組。例如,原數組 nums [0,1,2,4,5,6,7] 在變化后可能得到: 若旋轉 4 次,則可以得到 [4,5,6,7,0,1,2]若旋轉 …

【MIT 6.5840/6.824】Lab1 MapReduce

MapReduce MapReduce思想實現思路感受 6.5840/6.824 Lab與筆記匯總 本文對應的Lab版本為MIT6.5840-Spring2024的Lab1 本博客只提供思路,不會公開任何代碼 本lab耗時約6h,碼量約500行 MapReduce思想 MapReduce的思想屬于是比較簡單的,分為兩…

3. 排序算法代碼-python

目錄 1.冒泡排序2.快速排序3.插入排序4.希爾排序5.選擇排序6.堆排序7.歸并排序8. 二分查找 1.冒泡排序 冒泡排序""" def BubbleSort(nums):listLength len(nums)while listLength > 0:for i in range(listLength - 1):if nums[i] > nums[i1]:nums[i], n…