- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
变治法
西华大学数学与计算机学院 黄襄念 西华大学数学与计算机学院计算机系 黄襄念 编 eMail: huangxn@ Tel第 6 章 变治法 变治策略 预排序 高斯消去法 平衡查找树 变治策略 变治策略 通用的算法设计方法,基于变换的思想 变:变换问题更容易求解 治:对变换后的问题求解 3 种主要类型 实例化简:问题求解变得更简单,如预排序 改变表现:改变问题的表现形式,如AVL树,2-3树,堆 问题化简:问题变为另一个问题。如数学建模,将具体应用问题用 变量、函数、方程等数学对象表达 求解 问题 更简单方便 另一种表现 另一个问题 预排序:元素唯一性检验 预排序 古老思想:若列表有序,一些与列表有关的问题更容易求解。 —— 依赖于排序算法的时间效率 【例1】检验数组中元素的唯一性 蛮力:逐个比较数组元素,直到找到两个相等元素或全部元素比较 完毕为止。时间效率 O (n2) 变治:预排序化简问题后求解。即:数组排序后检查连续元素。 排序后等值元素(重复元素)一定相邻 算法 PresortElementUniqueness ( A[0...n-1] ) 对数组A排序 // 选nlogn型算法 for i←0 to n-2 do if A[i] = A[i+1] return false return true 预排序:模式统计 【例2】模式统计 模式:列表中出现频率最高的元素。 如 { 5, 1, 5, 7, 6, 5, 7 } 的模式为 5,模式可能不止一个 问题:在列表中找出模式 蛮力策略:扫描列表,统计每个元素的频率,找出频率最高的元素 蛮力实现:(方法之一) 设一个辅助列表,扫描元素与辅助列表中的元素一一比较,结果: 若匹配(辅助列表中已有),该元素频率加1. 不匹配(辅助列表中没有),新元素加入辅助列表,其频率置1. 本例最终的辅助列表:{ 5(3), 1(1), 7(2), 6(1) } 括号内为频率。 —— 扫描辅助列表,找出最大频率(3)的元素(5) 最坏情况:扫描原始列表时,每个元素在辅助列表中都没有匹配, 作为新元素加入辅助列表,原列表的第 k 个元素加入辅助列表时, 需要与辅助列表中已加入的 k-1个元素比较,共 k-1 次。 预排序:模式统计(续) 最差效率: 变治法 —— 预排序(nlogn型),排序后 等值元素一定相邻 扫描统计:模式具有最多的相邻元素,需比较 n -1 次。 PresortMode_1(A[0...n-1]) // 行程算法 对数组A排序 // 排序结果 { 1, 5, 5, 5, 6, 7, 7 } i←0,ModeFrequency←0 // 最大频率,最大行程长度 while ( i≤n-1 ) runlength←1,runvalue←A[i] // 行程长度 = 等值元素个数 while ( i+runlength≤n-1 and A[i+runlength] = runvalue ) runlength ++ // 与下一个元素相等则行程长度+1 if ( runlength ModeFrequency ) ModeFrequency←runlength,modeValue←runvalue i←i+runlength // 跳过本行程,i 始终指向行程的第一个元素 return ( ModeValue, ModeFrequency ) 预排序:模式统计(续) 非行程算法(比较次数 n-1) PresortMode_2(A[0...n-1]) 数组A排序 // 结果 { 1, 5, 5, 5, 6, 7, 7 } ModeFrequency←1 // 模式频率 ModeValue←A[0] // 模式值 for ( i←0 to n-2 ) Current_F←1 // 当前频率 if A[ i ] = A[
您可能关注的文档
- 第6章 异常.ppt
- java_base3_exception_AuKXzSvWN6nX.ppt
- ephen AEdwards Al.ppt
- Java语言Socket接口用法详解.doc
- 大数据导出方法.doc
- 电子商务技术基础 第4章 常用实例类.ppt
- JAVA wait(), notify(),sleep详解.doc
- 07exception.ppt
- 08.异常处理.pptx
- 异常机制处理.ppt
- 2024《S市夜间餐饮发展现状与完善对策研究(附问卷)》11000字.doc
- 2024《教师参与学校管理的成功经验的调研分析报告》4600字.docx
- 2024《立高食品公司会计岗位的职责设计6200字》.docx
- 2024《抖音直播带货发展中存在的问题及完善对策研究》10000字.doc
- 2024《滁州新天地童装公司应收账款管理问题及对策》15000字.docx
- 2024《劲仔食品公司绩效管理研究6600字》.docx
- 2024《S公司销售人员薪酬方案设计》9300字.docx
- 2024《卡萨帝电子企业存货管理的优化策略》开题报告任务书5300字.docx
- 2024《衡水老白干公司基层员工绩效管理现状、问题和完善对策研究》15000字.docx
- 2024《基于JIT企业存货管理问题及对策研究—以海尔集团为例》12000字.docx
文档评论(0)