A-A+
编写对有序表进行顺序查找的算法。假设每次查找时的给定值为随机值 又查找成功和不成功的概率也相
问题详情
编写对有序表进行顺序查找的算法。假设每次查找时的给定值为随机值,又查找成功和不成功的概率也相等,试求进行每一次查找时和给定值进行比较的关键字个数的期望值。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:int Search(rectype R[]int nK)//在具有n个元素的有序表R中顺序查找值为K的结点查找成功返回其位置//否则返回一1表示失败{i=0;while(i<n){if(R[i]==K)return(i);else if(R[i]>K)return(一1);i++:}//whilereturn(一1);}//结束search
此题考查的知识点是顺序查找算法。在等概率情况下,则查找成功的平均查找长度为(n+1)/2,查找失败的平均查找长度为(n+2)/2(失败位置除小于每一个,还存在大于最后一个)。若查找成功和不成功的概率也相等,则查找成功时和关键字比较的个数的期望值约为(n+1)/4。