Merge Sort
#include "iostream"
#include "cstdlib"
#include "cstdio"
#include<limits.h>
#include <iomanip>
#include <ctime>
using namespace std;
template <typename T1>
void MergeSort(T1 *A,int lo,int hi);
template <typename T2>
void Merge(T2 *A,int lo,int mid,int hi);
int main()
{
int Array[16];
int seed = time(nullptr);
srand(seed);
for(int i = 0;i < 16;i++)
Array[i] = (rand()*10) /RAND_MAX;
//利用rand()来随机生成待排序数列的元素
for(int i = 0;i < 16;i++)
{
cout << setiosflags(ios::left) << setw(5) << Array[i];
}
cout << endl;
MergeSort(Array,0,15);
for(int i = 0;i < 16;i++)
{
cout << setw(5) << Array[i];
}
return 0;
}
template <typename T1>
void MergeSort(T1 *A,int lo,int hi)
{
if(hi <= lo)
return;
int mid= (lo+hi) / 2;//divide区间计算
printf("MergeSort(%d,%d)\n",lo,mid);