网站大量收购独家精品文档,联系QQ:2885784924

2排序思想和其应用.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排序思想及其应用 ;排序问题;; ;数据结构;程序;;优点;总结;总结;采用二分思想对序列p[st…ed]进行递归排序 分解(将问题分解成两个子问题):取出中间元素p[(st+ed)div 2],划分两个子序列p[st…j]和p[j+1…ed],使得p[st…j]中的每一个元素小于等于p[temp],p[j+1…ed] ]中的每一个元素大于等于p[temp]; 解决(递归求两个子问题的解):对子序列p[st…j]和p[j+1…ed]递归执行快速排序; 合并(:合并两个子问题的解):两个子序列是就地排序的,因此合并不需要操作。整个过程直至i≥j为止。 算法效率O(n log2n) ;procedure sort1(st,ed:integer); /*按照递增顺序排列区间[p[st]…p[ed]]*/ var I,j:integer; { if st≥ed then exit; /*排序完毕,成功退出*/ temp←p[(ed+st)div2]; /*选取一个中间元素*/ i←st-1;j←ed+1; /*左右指针初始化*/ while ij do /*右移左指针i,左移右指针j,使得左区间[p[st]…p[i-1]]的每一个元素均小于中间元素temp,右区间[p[j+1]…p[ed]] 的每一个元素均大于中间元素temp,p[i]≥temp ,p[j]≤temp*/ { repeat inc(i) until p[i]≥temp; repeat dec(j) until p[j]≤temp; if ij then p[i]←→p[j]; /*若左右区间存在,则交换p[i]和p[j]*/ };/*while*/ sort1(st,j); sort1(j+1,ed) /*分别递归排序左右区间*/ };/* qsort */;合并排序;Procedure Sorting2(var A:atype;lo,hi:integer); var I,j,k:integer; /*左右区间的指针,合并区间的指针*/ B:atype; /*采用a数组类型*/ {if lohi /*若区间存在,则计算中间位置*/   then{ med←(lo+hi)div 2; /*分解*/ Sort2(A,lo,med); /*排序左子区间*/ Sort2(A,med+1,hi) /*排序右子区间*/ ;;快速排序与合并排序的异同; 显性排序问题 ;明明的随机数;;奖学金;确定关键字的优先顺序;计算方法;按照关键字的优先顺序比较大小;初始化;排序和输出;分数线划定;算法分析;;;排序工作量;思路点拨;二分法;求出d(lo,med)和d(med+1,hi)后,A[lo,med]和A[med+1,hi]已排序;Function Time-of-Sorting (A,lo,hi):integer; { c←0; /*逆序数和初始化*/  if lohi /*若区间存在,则计算中间位置*/  then{ med←(lo+hi)div 2; c←c+Time-of-Sorting (A,lo,med);/*排序左子区间并累计逆序数和*/ c←c+Time-of-Sorting (A,med+1,hi)/*排序右子区间并累计出两个子区间的逆序数和*/ ;;隐性排序问题;校门外的树 ;方法1——模拟统计 ;方法2——线段分割;第3种方法:快速排序 ;;;纪念品分组 ;采取价值相对均衡的贪心策略;;琢瞄遣畏酬刀巡邵僚粳簧策津脆晶狼冷漱羊块芬牙锻灯兼瓶砒陶豁铃博英2排序思想及其应用2排序思想及其应用;思维方向;模拟法;;;排座椅 ;畜职婉漆讳吴佯腮镀邢遵淀摆铺吵端醇催迈瑶幌仔龟凤囤尘摇霄彤董猾泉2排序思想及其应用2排序思想及其应用;思考方向;数据结构;输入数据,统计每列向右说话的同学数和每前行向下说话的同学数;贪心;独木舟上的旅行;猜想;定理:如果我们把V中的所有元素按重量从小到大依次与可能匹配的另一个尽可能重元素相匹配,那么匹配数是最多的(方案1)。;设当前最轻的旅客重量为i,最重的旅客重量为k;; read(w,n); /*读最大承载量和旅客数*/ fillchar(b,sizeof(b),0); maxweight←0;minweight←∞;/*最轻重量和最重重量初始化*/ for i←1 to n do { read

文档评论(0)

sy78219 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档