算法与数据结构查找详解.pptVIP

  • 0
  • 0
  • 约1.74万字
  • 约 65页
  • 2026-02-06 发布于北京
  • 举报

算法与数据结构查找详解演示文稿第1页,共65页。

(优选)算法与数据结构查找第2页,共65页。

内查找整个查找过程都在内存中进行。外查找在查找过程中需要访问外存。平均查找长度ASL——查找方法时效的度量为确定记录在查找表中的位置,需将关键字和给定值比较次数的期望值。查找成功时的ASL计算方法:n:记录的个数pi:查找第i个记录的概率,(不特别声明时认为等概率pi=1/n)ci:找到第i个记录所需的比较次数约定:无特殊说明,一般默认关键字的类型为整型BUPTBUPTSCST第3页,共65页。

8.2顺序表的查找01n-1nr[0..n]a0a1an-1r[n].key=K[算法描述]intseqsearch(int*a,constintn,constintK){inti=0;a[n]=K;while(a[i]!=K)i++;returni;}BUPTBUPTSCST第4页,共65页。

[程序设计技巧]设置监视哨,提高算法效率。[性能分析]空间:一个辅助空间。时间:1)查找成功时的平均查找长度设表中各记录查找概率相等ASLs(n)=(1+2+...+n)/n=(n+1)/22)查找不成功时的平均查找长度ASLf=n+1[算法特点]算法简单,对表结构无任何要求n很大=查找效率较低改进措施:非等概率查找时,可将查找概率高的记录尽量排在表前部。BUPTBUPTSCST第5页,共65页。

8.3二分查找满足r[i].key?r[i+1].key,0?in-1仍可用顺序查找,但在找不到时不需比较到表尾,只需比较到比给定值大的记录就可终止。[折半(二分)查找法]12345678910110513192137566475808892?low?mid?high=?(low+high)/2?K=21lhmK=85lhm111611161537119454101110109BUPTBUPTSCST第6页,共65页。

[算法描述]intbinsearch(intK,intv[],intn){intlow,high,mid;low=1;high=n;while(low=high){mid=(low+high)/2;if(Kv[mid])high=mid-1;elseif(Kv[mid])low=mid+1;else/*找到了匹配的值*/returnmid;}return-1;/*没有查到*/}BUPTBUPTSCST第7页,共65页。

[性能分析]h=?log2n?+1{同完全二叉树,二叉树性质4}成功查找时的平均查找长度(等概率):ASLs=例:ASLS=(

文档评论(0)

1亿VIP精品文档

相关文档