设一组初始记录关键字序列为(15,17,18,22,35,51,60),要求计算出成功查找时的平均查找长度.
2个回答
展开全部
一看那个回答的肯定直接复制粘贴答案给你的了
我来个详细过程吧
其实我也抱着试试的态度,这里题目U没说找什么数字
我只能说它是采用二分法检索了
一共七个数
先知道下面的公式先
对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL=∑PiCi (i=1,2,3,…,n),可以简单以数学上的期望来这么理解。其中:Pi 为查找表中第i个数据元素的概率,Ci为找到第i个数据元素时已经比较过的次数。
那么对数字15研究下:使用二分法找到15要经过3次比较
同理根据对称18,35,60肯定也是要比较3次
此时为1/7*3*4(一共4个数嘛,4个数都是一样的查找长度,所以直接乘以4咯)
同理得到:查找到17,51分别需要比较2次
此时1/7*2*2
同理,查找22当然只要一次就行
此时1/7*1
总结以上
ASL=(1*1+2*2+3*4)/7=17/7
我只是应考而已
我来个详细过程吧
其实我也抱着试试的态度,这里题目U没说找什么数字
我只能说它是采用二分法检索了
一共七个数
先知道下面的公式先
对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL=∑PiCi (i=1,2,3,…,n),可以简单以数学上的期望来这么理解。其中:Pi 为查找表中第i个数据元素的概率,Ci为找到第i个数据元素时已经比较过的次数。
那么对数字15研究下:使用二分法找到15要经过3次比较
同理根据对称18,35,60肯定也是要比较3次
此时为1/7*3*4(一共4个数嘛,4个数都是一样的查找长度,所以直接乘以4咯)
同理得到:查找到17,51分别需要比较2次
此时1/7*2*2
同理,查找22当然只要一次就行
此时1/7*1
总结以上
ASL=(1*1+2*2+3*4)/7=17/7
我只是应考而已
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询