⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zoe.cpp

📁 归并排序法:比较简单的使用c++语言进行归并并算法排序
💻 CPP
字号:
int  Copy(int A[],int B[],int n )
{
       for(int i=0; i<n;++i) 
		   A[i]=B[i];
       return  n;
}
/*将数组B中元素复制到A中*/
void  Merge(int A[],int B[],int m,int C[],int n )/*调用归并函数*/
{
       int  i,j,k; 
       k = 0; 
       for(i=0,j=0;;)
       {
             if(i==m) 
			 { 
				 //k+=Copy(&A[k],&C[j],n-j); 
				 break; 
			 } 
             if(j==n) 
			 { 
				// k+=Copy(&A[k],&B[i],m-i);
				 break; 
			 } 
             
             if(B[i]<C[j])
                 A[k++]=B[i++]; 
             else
                 A[k++]=C[j++];                             
       }
}


void  MergeSort(int A[],int n)
{
       int  i,k,B[10000]; 
       for(k=1;k<n;k*=2)
       {
           for(i=0;i<n;i+=2*k)
               {
                    int n1,n2;

					 n1=k;  
					 if(i+k>n) 
					   n1=n-i;
					 if(n1<0) 
						n1=0;

                     n2 = k;  
					 if(i+2*k>n) 
					    n2=n-i-k; 
					 if(n2<0) 
						 n2 = 0; 

                     Merge(B,&A[i],n1,&A[i+k],n2); 
                        Copy(&A[i],B,n1+n2);
               }
       } 
}


#include<stdio.h>
void main()
{
	int a[]={72,73,71,23,94,16,5,68,64};
	int n=9,i;
	printf("原序列为:\n");
	for(i=0;i<n;i++)
		printf("%d\t",a[i]);
	printf("\n");printf("\n");

	MergeSort(a,n);

	printf("排序后的序列为:\n");
	for(i=0;i<n;i++)
		printf("%d\t",a[i]);
	printf("\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -