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

📄 二路归并.cpp

📁 经典的二路归并算法
💻 CPP
字号:
#include<iostream.h>

void merge(int array[],int temparray[],int left,int middle,int right)
{
	for(int j=left;j<=right;j++)
		temparray[j]=array[j];
	int index1=left;
	int index2=middle+1;
	int i=left;
	while((index1<=middle)&&(index2<=right))
	{
		if(temparray[index1]<=temparray[index2])
		{
			array[i++]=temparray[index1++];
		}
		else
		{
			array[i++]=temparray[index2++];
		}
	}
	while(index1<=middle)
		array[i++]=temparray[index1++];
	while(index2<=right)
		array[i++]=temparray[index2++];
}



void sort(int * array,int * temparray,int left,int right)
{
	if(left<right)
	{
		int middle=(left+right)/2;
		sort(array,temparray,left,middle);
		sort(array,temparray,middle+1,right);
		merge(array,temparray,left,right,middle);
	}
}
void main()
{
	cout<<"please input the number of integers:"<<endl;
	int num;
	cin>>num;
	int * array=new int[num];
	cout<<"please input the integers:"<<endl;
	int i;
	for(i=0;i<num;i++)
	{
		cin>>array[i];
	}
	int * temparray=new int[num];
	sort(array,temparray,0,num-1);
	
	for(i=0;i<num;i++)
	{
		cout<<array[i]<<" "<<endl;
	}
}
	

⌨️ 快捷键说明

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