C++实现自然合并排序

#include  
using namespace std;  


int t[9];  
int ta;      //线性扫描得到的标记数  


 void Merge(int c[],int d[],int l,int m,int r);   
 void MergePass(int x[],int y[],int s,int n) ; 
 //先声明函数 
 
void MergeSort(int a[],int n)  
{  
    int *b=new int[n];  
    int s=1;  
    while(sm)                        
        for(int q=j;q<=r;q++)        //说明i全部复制到d了,只需把剩下的j复制到d中,且此时c中元素是有序的,可以直接复制  
            d[l++]=c[q];  
    else  
        for(int p=i;p<=m;p++)        //说明j全部复制到d了,只需把剩下的i复制到d中,且此时c中元素是有序的,可以直接复制 
            d[l++]=c[p];  
}  
  
void PrintArray(int a[],int n)  
{ //输出数组中的元素 
    for(int i=0;i

你可能感兴趣的:(C++实现自然合并排序)