66.《ds---查詢》

不爱美女爱辣条發表於2024-10-26
one 查詢概念 線性結構

大綱總體上就是一個基本概念和五種查詢方法

查詢表分為靜態查詢表和動態查詢表
-靜態查詢表 只涉及查詢操作(順序查詢 折半查詢 雜湊查詢)
-動態查詢表 動態插入或刪除(二叉排序樹查詢 雜湊查詢)

對於關鍵概念 關鍵字和平均查詢長度(假設總左往右一一查詢)
例如找關鍵字為4 需要比較 10 2 4 三次
image

順序查詢【線性查詢】(順序表和連結串列)

一般線性表的順序查詢(無序)
image
有序線性表的順序查詢
image

隨後再詳細寫解平均查詢長度的演算法
還有注意前提是表中每個元素的查詢機率都一樣

看一個查詢機率不同的題目
對長度為3的順序表進行查詢 若查詢第一個元素的機率為1/2 查詢第二個元素的機率為1/3 第三個元素機率1/6 則查詢任意一個元素的平均查詢長度為多少
11/2+21/3+3*1/6=5/3

折半查詢【二分查詢】(有序順序表)

如果C程式設計或Java程式設計都會涉及到折半查詢 效率高 時間複雜度O(log2為底n)
image
可以觀察到找中間結點的時候 採取的是向下取整 注意隨後的都要採取向下取整

- 查詢成功的查詢長度為從根節點到目的結點的路徑上的結點數
- 查詢失敗的查詢長度為從根節點到對應失敗結點的父結點的路徑上的結點數
- 特性每個結點值均大於左子結點值其均小於右子節點值 
- 折半查詢的判別樹是一顆平衡二叉樹(左子樹小於右子樹 左右子樹高度之差不超過1)
- 判別樹高為=log2為底(n+1)向上取整

下面幾點好理解 最重要的就是前兩條
具有12個關鍵字的有序表中 每個關鍵字的查詢機率相同 折半查詢演算法查詢成功的平均查詢長度 折半查詢失敗的平均查詢長度
最直接易理解的方法就是畫出該圖
image

easy題 有序表{b,c,d,e,f,g,q,r,s,t}二分查詢關鍵字b 進行比較的關鍵字依次是
image
還有一個坑 簡單上來就框框一頓做 首先給你的元素並非有序排列
對於折半查詢必須是有序順序表
所有你要先有序排列後再進行對應查詢
image

已知一個長度為16的順序表 其元素按關鍵字有序排列 採用折半查詢法查詢一個不存在的元素 比較的次數至少多少次 至多多少次
image

分塊查詢【索引順序查詢】
- 塊內元素無序 塊間元素有序
- 索引表中的每個元素含有各塊的最大關鍵字和各塊中的第一個元素的地址
- 查詢步驟兩步 一索引表中確定待查記錄所在的塊 二塊內順序查詢
- 當s=√n 平均查詢長度最小值√n+1

image

基本是一些基本概念的考察簡單看道題
為了提高查詢效率 對有65025個元素的有序順序表建立索引順序結構 最好情況下查詢到表中已有元素最多需要執行多少次關鍵字比較
image


two 樹形結構(二叉排序樹)

二叉排序樹目的是為了提高查詢插入刪除關鍵字的速度

2020統考真題 給定關鍵字輸入序列中不能生成該二叉排序樹的是
image

因為我這考試不注重考察過多所以至此打住


three 雜湊表(雜湊表)
- 雜湊表 關鍵字和儲存地址之間的一種直接對映關係
- 雜湊函式 一個把查詢表中的關鍵字對映成該關鍵字對應的地址的函式
- 衝突 不同關鍵字對映到同一地址
- 同義詞 發生衝突的不同關鍵字

雜湊函式的構造方法

  1. 直接定址法
  2. 除留餘數法
  3. 數字分析法
  4. 平方取中法

處理衝突的方法

  1. 開放定址法
  • 線性探測法(線性探查 再雜湊)
  • 平方探測法(二次探測法)
  • 雙雜湊法
  • 偽隨機序列法
  1. 拉鍊法
    不一一介紹而是用考題來看重點的方法

假定K個關鍵字互為同義詞 線性探測法把K個關鍵字填入雜湊表 至少要進行多少次探測
都有衝突 只有第一個放進去後依次往後 K(k+1)/2

雜湊表長m=14 雜湊函式H(key)=key%11 表中四個結點H(15)=4 H(38)=5 H(61)=6 H(84)=7 採用線性探測法處理衝突 關鍵字49的結點地址是
image

現長度17 初始為空的雜湊表 雜湊函式H(key)=key%17 平方探測法解決衝突 關鍵字序列 6 22 7 26 9 23依次插入 則關鍵字23存放在雜湊表中的位置是
image

image
image

2019統考真題 長度11初始為空的雜湊表 雜湊函式H(key)=key%7 採用線性探測再雜湊法解決衝突 將關鍵字序列 87 40 30 6 11 22 98 20依次插入 查詢失敗的平均長度
image

2023統考真題 長度為5初始為空的雜湊表 雜湊函式H(k)=(k+4)%5 線性探查再雜湊法解決衝突 關鍵字序列 2022 12 25依次插入 刪除關鍵字25 查詢失敗的平均查詢長度為
image

關於雜湊表查詢效率 裝填因子參考蚊香一眼
image

over!!!

相關文章