第1关:归并排序的递归算法
任务描述
本关任务:归并排序的递归算法。
相关知识
设归并排序的当前区间是R[low…high],分治法的三个步骤是:
① 分解:将当前区间一分为二,即求分裂点
② 求解:递归地对两个子区间R[low…mid]和R[mid+1…high]进行归并排序;
③ 组合:将已排序的两个子区间R[low…mid]和R[mid+1…high]归并为一个有序的区间R[low…high]。
递归的终结条件:子区间长度为1。
随机数
rand()函数和 srand()函数
C语言要获得随机数,就要用到rand()函数。关于rand函数要注意以下几点:
要包含stdlib.h,rand函数声明在这个函数里。
rand()函数返回一个在 0 到 RAND_MAX 之间的整数值。
rand()产生的是伪随机数,如果不初始化,每次输出都是一样的序列。
srand(seed)是初始化函数,seed一般用机器时间做随机数的种子。
//归并排序的递归算法
#include<iostream>
#include<fstream>
using namespace std;
#include <time.h>
#define MAXSIZE 100 //顺序