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

📄 mergesort.h

📁 本代码实现了几乎所有的排序算法
💻 H
字号:
#include <iostream.h>

void Merge(int *a, int *b, int l, int m, int n)
{
	int i=l,j=m+1,k=l-1;
	
	while(i<=m && j<=n)
	{
		if(a[i]<a[j])
			b[++k]=a[i++];
		else 
			b[++k]=a[j++];
	}
		
	if(i<=m)
		for (int t=i;t<=m;t++)
			b[++k]=a[t];
	if(j<=n)
		for (int t=j;t<=n;t++)
			b[++k]=a[t];
	for(i=l;i<=n;i++)
			a[i]=b[i];
}



void MergeSort(int *A, int *B, int l, int h)
{
	if(l == h)
		return;
	int m = (l+h)/2;
	MergeSort(A, B, l, m);
	MergeSort(A, B, m+1, h);
	Merge(A, B, l, m, h);
}
//接口函数
void mergesort(int *a,int num)
{
	int *temp;
	temp = new int [num];
	if (temp != NULL)
	{
		MergeSort(a,temp,0,num-1);
		for (int i=1;i<num;i++)
			a[i]=temp[i];
		delete temp;
	}
	else
		return;
}

⌨️ 快捷键说明

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