- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
专题 排序和查找
专题 排序和查找;已经学过的排序算法(7种);已经学过的查找方法(5种);主要内容;归并排序;简单分治排序;平衡划分——归并排序;思想
对于一个需要排序的数组A[0…n-1],把它一分为二: A[0…n/2-1]和A[n/2…n-1],并对每个子数组递归排序
然后把这两个排好序的子数组合并为一个有序数组;//Mergesort
if n1
copy A[0…n/2-1] to B[0…n/2-1]
copy A[n/2…n-1] to C[0…n/2-1]
Mergesort(B[0…n/2-1])
Mergesort(C[0…n/2-1])
Merge(B,C,A);思想
对两个有序数组的合并
初始状态下,关注两个待合并数组的第一个元素
然后比较这两个元素的大小,将较小的元素添加到一个新创建的数组中
接着被复制数组中的下标后移,指向该较小元素的后继元素
上述操作一直持续到两个数组中的一个被处理完为止
然后在未处理完的数组中,剩下的元素被复制到新数组的尾部;//Merge(B[0…p-1],C[0…q-1],A[0…p+q-1])
i?0,j?0,k?0
while ip and jq do
if B[i]=C[j]
A[k]?B[i]
i?i+1
else
A[k]?C[j]
j?j+1
k?k+1
if i=p
copy C[j…q-1] to A[k…p+q-1]
else
copy B[i…p-1] to A[k…p+q-1];;例题;自然归并排序;主要内容;思想
按照元素的值进行划分
对给定数组中的元素进行重新排列,以得到一个快速排序的分区
在一个分区中,所有在s下标之前的元素都小于等于A[s],所有在s下标之后的元素都大于等于A[s]
建立了一个分区以后,A[s]已经位于它在有序数组中的最终位置。接下来使用同样的方法继续对A[s]前和A[s]后的子数组分别进行排序;//Quicksort[A[l…r]]
//input:数组A[0…n-1]中的子数组A[l…r]
//output:排序后的数组
if lr
s?Partition(A[l…r])
Quicksort(A[l…s-1])
Quicksort(A[s+1…r])
;思想
为了建立一个分区,有许多不同的方法对元素重新排列,其中一种是基于两次扫描子数组的高效算法
一次是从左到右,另一次是从右到左,每次都把子数组的元素和中轴进行比较
从左到右的扫描(i)从第二个元素开始,因为我们希望小于中轴的元素位于子数组的第一部分,扫描会忽略小于中轴的元素,直到遇到第一个大于等于中轴的元素才会停止
从右到左的扫描(j)从最后一个元素开始,扫描忽略大于中轴的元素,直到遇到第??个小于等于中轴的元素才会停止
两次扫描停止后,取决于扫描的指针是否相交,会发生3种不同的情况;描述
如果扫描指针i和j不相交,也就是说ij,简单的交换A[i]和A[j]
分别对i加一、j减一,然后继续开始扫描
示意;描述
如果扫描指针相交,也就是说ij,把中轴和A[j]交换
示意;描述
如果指针停下来时指向的是同一个元素,也就是说i=j,被指向元素的值一定等于p,此时建立的分区中分裂点的位置S=i=j
示意;p?A[l]
i?l,j?r+1
repeat
repeat i?i+1 until A[i]=p
repeat j?j-1 until A[j]=p
swap(A[i],A[j])
until i=j
swap(A[i],A[j])
swap(A[l],A[j])
return j;;改进
随机数、两平均、三平均中轴选择算法
当子数组足够小时改用最简单的排序算法
综合运用这些措施,可缩减20%时间;提示;主要内容;希尔排序;Shell排序例;Shell排序例(续);算法分析;实现;实现(续);主要内容;时间复杂度比较;部分结论;部分结论;主要内容;顺序查找;折半查找;*
您可能关注的文档
最近下载
- 成人失禁性皮炎的预防与护理团标解读课件.pptx VIP
- 义务教育法课件.pptx VIP
- 义务教育数学课程标准(2022年版)重点.pdf VIP
- 高校辅导员招聘考试《基础知识》试题汇编(含答案).pdf VIP
- 第十四章烧伤冷伤咬蛰伤.pptx VIP
- FLOEFD 2021(Standalone 版)软件教程-第8章高级模块示例(管内燃烧).pdf VIP
- 未来之路 比尔盖茨.pdf VIP
- 物流园区绩效指标体系.pdf VIP
- 迅达电梯SMLCD人机界面培训5400主板按键操作培训.pptx
- FLOEFD 2021(Standalone 版)软件教程-第7章参数化研究示例.pdf VIP
文档评论(0)