查找(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
相关文章
相关标签/搜索