查找算法选编.ppt

顺序表的查找运算 线性表有两种基本的查找运算。 按序号查找GetData(L,i): 要求查找线性表L中第i个数据元素,其结果是L.elem[i-1] 按内容查找Locate(L,e): 要求查找线性表L中与给定值e相等的数据元素,其结果是:若在表L中找到与e相等的元素,则返回该元素在表中的序号;若找不到,则返回一个“空序号”,如-1。 顺序表的按内容查找 算法分析:查找运算可采用顺序查找法实现,即从第一个元素开始,依次将表中元素与e相比较,若相等,则查找成功,返回该元素在表中的序号;若e与表中的所有元素都不相等,则查找失败,返回“-1”。 算法实现: int? Locate(SeqList L,ElemType e) {? i=0 ; ?//i为计数器,从第一个元素开始比较 ?? while ((i=L.length-1)(L.elem[i]!=e) )? /*顺序扫描表,直到找到值为e的元素, 或扫描到表尾而没找到*/ i++; ??? if? (i=L.length-1)? ?????? return(i+1);? /*若找到值为e的元素,则返回其序号*/ ??? else???? ?????? return(-1);? /*若没找到,则返回空序号*/ } 算法描述 查找过程:将表分成几块,块内无序,块间有序;先确定待查元素所在块,再在块内查找

文档评论(0)

1亿VIP精品文档

相关文档