Algorithm_Chapter_7-(精品课件).pptVIP

  • 3
  • 0
  • 约6.82千字
  • 约 29页
  • 2018-10-14 发布于广西
  • 举报
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * School of Information Science Engineering School of Information Science Engineering School of Information Science Engineering 算法分析与设计 Analysis and Design of Computer Algorithms 第七章 时空权衡 Space and Time Tradeoffs Yunnan University School of Information Science Engineering * 教学内容 时空权衡的方法 计数排序 串匹配中的输入增强技术 散列法 B树 要求 掌握时空权衡的概念及基本方法,掌握时空权衡的方法在常见问题中的应用。 Yunnan University School of Information Science Engineering * 时空权衡 时空权衡是指在算法的设计中,对算法的时间和空间作出权衡。 常见的以空间换取时间的方法有: 输入增强 计数排序,串匹配算法的改进 预构造 散列法,B树 动态规划 Yunnan University School of Information Science Engineering * 计数排序 思路:针对待排序列表中的每一个元素,算出列表中小于该元素的元素个数,把结果记录在一张表中。 Yunnan University School of Information Science Engineering * 计数排序算法 算法 ComparisonCountingSort(A[0..n-1]) for(i?0 to n-1) Count[i]?0; for(i?0 to n-1) for(j?i+1 to n-1) if(A[i]A[j]) Count[j]?Count[j]+1; else Count[i]?Count[i]+1; for(i?0 to n-1) S{Count[i]]?A[i]; return S; Yunnan University School of Information Science Engineering * 计数排序算法分析 技术排序算法在一种情况下还是卓有成效的,即待排序元素的值都来自一个已知的小集合。 如果元素的值是来自位于[l,u]之间的整数,我们可以计算出这些值出现的频率,然后把它们存在数组F[0..u-l]中。 然后把有序列表的前F[0]个位置填l,接下来的F[1]个位置填入l+1. Yunnan University School of Information Science Engineering * 计数排序算法分析实例 13 11 12 13 12 12 数组值 11 12 13 频率 1 3 2 分布值 1 4 6 算法 DistributionCountingt(A[0..n-1]) for(j?0 to u-l) D[j]?0; for(i?0 to n-1) D[A[i]-l]?D[A[i]-l]+1; for(j?i+1 to u-l) D[j]?D[j-1]+D[j]; for(i?n-1 downto 0){ j?A[j]-l; S[D[j]-1]?A[i]; D[j]?D[j]-1; } return S; Yunnan University School of Information Science Engineering * 串匹配中的输入增强技术 串匹配中的输入增强思想 对模式进行预处理,得到它的一些信息,然后在查找的过程中使用这些信息。 两种著名算法 Knuth-Morris-Part Boyer-Moore Yunnan University School of Information Science Engineering * Horspool算法 考虑在某些文本中查找模式BARBER s0s1 ... c ... sn-1 BARBER s0s1 ... S ... sn-1

文档评论(0)

1亿VIP精品文档

相关文档