1.一般线性表的顺序查找
对于有n个元素的线性表,给定值key与表中的第i个元素关键字相等,即为第i个元素时,需要n-i+1次比较。查找成功时,平均查找长度为ASL= *(n-i+1)
当每个元素的概率相同=1/n,则有
ASL= *(n-i+1)=(n+1)/2
查找不成功,关键字总要比较n+1次。
2.有序表的顺序查找
如果能够在查找之前知道表的关键字时有序的,当查找失败时无需比较另一端的关键字就能返回查找失败的信息,那么就可以缩小失败平均查找长度。下图是有序顺序表的顺序查找判定数:
有序顺序查找查找成功长度和一般顺序查找的一样。查找失败时,查找指针走到了某个失败结点(红色线的结点),查找失败长度为该结点的层数。查找失败概率为1/n+1。
ASL(不成功)=(1+2+...+n+n)/n+1=n/2+n/(n+1)