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

📄 3.cpp

📁 多元哈夫曼算法
💻 CPP
字号:
#include <iostream>
#include<fstream>
using namespace std;
const int size=20;

int   getmin(int *a,int n,int k)
	{
	int sum=0,min1=0;
	while(n!=0)
	{
	for(int m=0;m<k;m++)
	{
		int min=a[0];
		int flag=0;
		for(int i=0;i<n;i++)
		{ 
		
			if(a[i]<min)
			{
				min=a[i];
				flag=i;
			}
		}
		//cout<<min<<endl;
		sum=sum+min;
		for(int j=flag;j<n;j++)
		{
			a[j]=a[j+1];
		}
		n=n-1;
	}
	min1=sum+min1;
	if(n!=0) n=n+1;	
		a[n-1]=sum;
		sum=0;
	}
	
return min1;

}

int  getmax(int *a,int n,int k)
	{
	if(k>2)k=2;
	int sum=0,max1=0;
	while(n!=0)
	{
	for(int m=0;m<k;m++)
	{
		int max=a[0];
		int flag=0;
		for(int i=0;i<n;i++)
		{ 
		
			if(a[i]>max)
			{
				max=a[i];
				flag=i;
			}
		}
		//cout<<min<<endl;
		sum=sum+max;
		for(int j=flag;j<n;j++)
		{
			a[j]=a[j+1];
		}
		n=n-1;
	}
	max1=sum+max1;
	if(n!=0) n=n+1;	
		a[n-1]=sum;
		sum=0;
	}
	
return max1;

}
void main()
{
	int n,k,max,min;
	ifstream cin("input.txt");
	ofstream cout("output.txt");
    cin>>n>>k;
	if(k<2) cout<<"输入错误"<<endl;
	int a[size],b[size];
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		b[i]=a[i];
	}
	
	max=getmax(a,n,k);
	min=getmin(b,n,k);
	cout<<max<<endl;
	cout<<min;
}




⌨️ 快捷键说明

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