查找(1)

查找的概念

查找表的概念

QQ圖片20200504170648.pngQQ圖片20200504170655.png

查找表的分類

QQ圖片20200504170721.png

關鍵字(相似主鍵)

QQ圖片20200504170836.png

查找QQ圖片20200504170907.pngQQ圖片20200504170952.pngQQ圖片20200504171029.png

靜態查找表

QQ圖片20200504171420.png

順序查找表

QQ圖片20200504171509.png

查找過程
  • 順序表中表長比元素個數多一個,0號是空的,不存儲元素,而是將被查找元素存在0號單元裏,從尾部進行查找,這樣最終必定能找到,從而提升效率。0號單元叫作監視哨QQ圖片20200504171808.pngQQ圖片20200504171848.png
查找效率

QQ圖片20200504172115.png

  • 順序查找比較低效,要平均比較一半元素,當n大時,效率就會很低,不適合做爲經常使用查找結構
  • 查找效率的改善方法

QQ圖片20200504172233.png

有序表的查找

QQ圖片20200504172649.png

折半查找

QQ圖片20200504172758.png必定是順序存儲結構,由於鏈式存儲沒法隨機查找,而折半查找要本身選擇比較的位置算法

算法實現

QQ圖片20200504172944.pngQQ圖片20200504173504.pngQQ圖片20200504173549.pngQQ圖片20200504173611.png

  • 順序查找每次只能排除一個元素,折半查找每次能排除當前區間的一半元素。折半查找是順序查找中效率最高的方法,可是要求苛刻:必須是順序存儲結構,並且查找前作好排序
性能分析

因爲折半查找要麼找到,不然就到左側或右側找,所以生成一課二叉樹QQ圖片20200504173937.pngQQ圖片20200504174131.pngQQ圖片20200504174210.png性能

順序表和查找表的比較QQ圖片20200504174252.png

索引順序表

  • 索引表成因:因爲順序表查找效率低,而折半查找雖然效率高,卻須要元素作大排序,花費代價多,所以咱們作了平衡,部分實現有序
  • 索引表包含最大元素和第一個元素位置。塊內無序排放;塊之間有序,即後邊塊的全部值要大於前邊全部塊的值(塊內無序,塊間有序QQ圖片20200504180612.png
查找過程

QQ圖片20200504180903.png

查找效率

QQ圖片20200504181116.png

三種方法比較

QQ圖片20200504181254.png

幾種插入表的特性

QQ圖片20200504181457.pngspa

  • 由上可見,有序表查找效率高,可是插入刪除效率低,只適合作靜態查找QQ圖片20200504181613.png
相關文章
相關標籤/搜索