知识大全 排序 - 归并排序(三)
Posted 区间
篇首语:枕上从妨一夜睡,灯前读尽十年诗。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 排序 - 归并排序(三)相关的知识,希望对你有一定的参考价值。
自顶向下的方法
采用分治法进行自顶向下的算法设计 形式更为简洁
( )分治法的三个步骤
设归并排序的当前区间是R[low high] 分治法的三个步骤是
①分解 将当前区间一分为二 即求分裂点
>
②求解 递归地对两个子区间R[low mid]和R[mid+ high]进行归并排序;
③组合 将已排序的两个子区间R[low mid]和R[mid+ high]归并为一个有序的区间R[low high]
递归的终结条件 子区间长度为 (一个记录自然有序)
( )具体算法
void MergeSortDC(SeqList R int low int high)
//用分治法对R[low high]进行二路归并排序
int mid;
if(low
mid=(low+high)/2; //分解
MergeSortDC(R,low,mid); //递归地对R[low..mid]排序
MergeSortDC(R,mid+1,high); //递归地对R[mid+1..high]排序
Merge(R,low,mid,high); //组合,将两个有序区归并为一个有序区
//MergeSortDC
(3)算法MergeSortDC的执行过程
算法MergeSortDC的执行过程如下图所示的递归树。tW.WIngwiT.
>
二、算法分析
1、稳定性
归并排序是一种稳定的排序。
2、存储结构要求
可用顺序存储结构。也易于在链表上实现。
3、时间复杂度
对长度为n的文件,需进行
>趟二路归并,每趟归并的时间为O(n),故其时间复杂度无论是在最好情况下还是在最坏情况下均是O(nlgn)。
4、空间复杂度
需要一个辅助向量来暂存两有序子文件归并的结果,故其辅助空间复杂度为O(n),显然它不是就地排序。
注意:
若用单链表做存储结构,很容易给出就地的归并排序。具体【参见练习】。
cha138/Article/program/sjjg/201311/23775相关参考
归并排序(MergeSort)是利用归并技术来进行排序归并是指将若干个已排序的子文件合并成一个有序的文件 两路归并算法 算法基本思路 设两个有序的子文件(相当于输入堆)放在同一向量中相邻的位
归并排序 归并排序有两种实现方法自底向上和自顶向下 自底向上的方法 ()自底向上的基本思想 自底向上的基本思想是第趟归并排序时将待排序的文件R[n]看作是n个长度为的有序子文件将这些子文件
.就排序算法所用的辅助空间而言堆排序快速排序归并排序的关系是( )【西安交通大学三(分)】 A.堆排序〈 快速排序〈归并排序 B.堆排序
.设有N个记录的一个文件经内部排序后得到个初始归并段 ()试问在四台磁带机上分别用平衡归并和多步归并进行外部排序各需要多少趟归并? ()给出多步归并排序前五趟归并的情况(分)【北方交通大学六(
从节省存储空间考虑先选堆排序再选快速排序最后选择归并排序 从排序结果的稳定性考虑选择归并排序堆排序和快速排序都是不稳定排序 从平均情况下排序最快考虑先选择快速排序 ()堆排序快速排序归并排序
.给定个权值集合()画出含有个叶子结点的最佳三叉归并树并计算出wpl=?【东北大学一(分)】 类似本题的另外叙述有 ()假设有个初始归并段其长度分别为;现要作路外部归并排序试画出表示归并过程的
希赛教育计算机专业考研专业课辅导招生 希赛教育计算机专业考研专业课辅导视频 希赛教育计算机考研专业课在线测试系统 voidMsort(RcdTypeSR[]RcdTypeTR[]intsin
排序是组织数据最基本的运算排序的方法也很多本章给出了几种典型的排序方法见下表 排序类别插入排序交换排序选择排序归并排序分配排序 排序方法直接插入冒泡法直接选择*归并排序箱排序 希尔排序*快速
内部排序中的归并排序是在内存中进行的归并排序辅助空间为O(n)外部归并排序是将外存中的多个有序子文件合并成一个有序子文件将每个子文件中记录读入内存后的排序方法可采用多种内排序方法外部排序的效率主要
给出一组关键字分别写出按下列各种排序方法进行排序时的变化过程【南开大学八(分)】 ()归并排序 每归并一次书写一个次序 ()快速排序 每划分一次书写