查找(1)

查找的概念

查找表的概念

查找(1)_第1张图片

查找表的分类

查找(1)_第2张图片

关键字(类似主键)

查找(1)_第3张图片

查找查找(1)_第4张图片

静态查找表

查找(1)_第5张图片

顺序查找表

查找(1)_第6张图片

查找过程
  • 顺序表中表长比元素个数多一个,0号是空的,不存储元素,而是将被查找元素存在0号单元里,从尾部进行查找,这样最终一定能找到,从而提高效率。0号单元叫做监视哨查找(1)_第7张图片
查找效率

查找(1)_第8张图片

  • 顺序查找比较低效,要平均比较一半元素,当n大时,效率就会很低,不适合作为常用查找结构
  • 查找效率的改善方法

查找(1)_第9张图片

有序表的查找

查找(1)_第10张图片

折半查找

查找(1)_第11张图片一定是顺序存储结构,因为链式存储无法随机查找,而折半查找要自己选择比较的位置

算法实现

查找(1)_第12张图片

  • 顺序查找每次只能排除一个元素,折半查找每次能排除当前区间的一半元素。折半查找是顺序查找中效率最高的方法,但是要求苛刻:必须是顺序存储结构,而且查找前做好排序
性能分析

由于折半查找要么找到,否则就到左侧或右侧找,因此生成一课二叉树查找(1)_第13张图片

顺序表和查找表的比较查找(1)_第14张图片

索引顺序表

  • 索引表成因:由于顺序表查找效率低,而折半查找虽然效率高,却需要元素做大排序,花费代价多,因此我们做了平衡,部分实现有序
  • 索引表包含最大元素和第一个元素位置。块内无序排放;块之间有序,即后边块的所有值要大于前边所有块的值(块内无序,块间有序查找(1)_第15张图片
查找过程

查找(1)_第16张图片

查找效率

查找(1)_第17张图片

三种方法比较

查找(1)_第18张图片

几种插入表的特性

查找(1)_第19张图片

  • 由上可见,有序表查找效率高,但是插入删除效率低,只适合做静态查找查找(1)_第20张图片

你可能感兴趣的:(数据结构)