查找
顺序查找同叫线性查找
有序查找包括:折半查找法、插值查找(按比例查找)、斐波那契查找(黄金分割法查找)
无序查找:二叉排序树
顺序查找
原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率低下。
必须是顺序
要进行顺序查找,则线性表既可以以顺序方式存储,也可以链式方式存储;
若表中元素个数为n,则顺序查找的平均比较次数为(n+1)/2
二分查找 (别称:折半查找)
必须以
顺序存储结构
,必须按关键字大小
有序排序
。表必须有序,且表只能以顺序方式存储
对线性表进行二分查找时,要求线性表必须以链接方式存储,且数据元素有序.换一句话说,适用于折半查找的表的存储方式及元素排列要求为顺序方式存储,元素有序。
要进行折半查询,则线性表必须以顺序方式存储,且数据已按递增或递减顺序排好;
若表中元素个数为n,折半查找的平均比较次数为log2(n+1)
折半查找的时间复杂性为O(logn)
分块查找 (别称:索引顺序查找)
分块查找是折半查找和顺序查找的一种改进方法
只要求索引表是有序的,对块内节点没有排序要求,因此特别适合于节点动态变化的情况。
数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块。
当采用分快查找时,数据的组织方式为
数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块