yakun.cpp

来自「归并排序,算法分析与设计第二章分治法思想的归并排序算法实现,用C++写的.」· C++ 代码 · 共 76 行

CPP
76
字号
#include <iostream.h>

void MERGE (int low,int mid,int high, int* a)
{
	int h,i,j,k;
	int b[7];
	h=low;
	i=low;
	j=mid+1;
	while ((h<=mid)&&(j<=high))
	{
			if (a[h]<=a[j])
			{
				b[i]=a[h];
				h++;
			}
			else 
			{
				b[i]=a[j];
				j++;
			}
			i++;
	}

		if(h>mid)
		{ 
			for (k=j;k<=high;k++)
			{b[i]=a[k];
			i=i+1;
			}
			
		}
		else
		{
			for(k=h;k<=mid;k++)
			{
				b[i]=a[k];
				i++;
			}
		}
		for(k=low;k<=high;k++)
		{
			a[k]=b[k];			 
		}
}


void MERGESORT(int low,int high,int* a)
{  
	int mid;
	if (low<high)
	{
		mid=(low+high)/2;
        MERGESORT(low,mid,a);
        MERGESORT(mid+1,high,a);
		MERGE(low,mid,high,a);

	}
}

void print(int* a,int n)
{
	for(int i = 0; i < n;i++ )
		cout << a[i] << ' ';
}

 void main ()
{int a[7];
 int n=7;
	cout<<"请输入要排序的数组";
    for( int i = 0; i < n;i++ )
		cin >> a[i] ;
   MERGESORT(0,6,a);
    print(a, 7);
	
}

⌨️ 快捷键说明

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