查找的概念
查找表的概念
查找表的分类
关键字(类似主键)
查找

静态查找表
顺序查找表
查找过程
- 顺序表中表长比元素个数多一个,0号是空的,不存储元素,而是将被查找元素存在0号单元里,从尾部进行查找,这样最终一定能找到,从而提高效率。0号单元叫做监视哨
查找效率
- 顺序查找比较低效,要平均比较一半元素,当n大时,效率就会很低,不适合作为常用查找结构
- 查找效率的改善方法
有序表的查找
折半查找
一定是顺序存储结构,因为链式存储无法随机查找,而折半查找要自己选择比较的位置
算法实现
- 顺序查找每次只能排除一个元素,折半查找每次能排除当前区间的一半元素。折半查找是顺序查找中效率最高的方法,但是要求苛刻:必须是顺序存储结构,而且查找前做好排序
性能分析
由于折半查找要么找到,否则就到左侧或右侧找,因此生成一课二叉树
顺序表和查找表的比较
索引顺序表
- 索引表成因:由于顺序表查找效率低,而折半查找虽然效率高,却需要元素做大排序,花费代价多,因此我们做了平衡,部分实现有序
- 索引表包含最大元素和第一个元素位置。块内无序排放;块之间有序,即后边块的所有值要大于前边所有块的值(块内无序,块间有序)
查找过程
查找效率
三种方法比较
几种插入表的特性
)
- 由上可见,有序表查找效率高,但是插入删除效率低,只适合做静态查找
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。