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

📄 lost_k_merge.cpp

📁 常用算法与数据结构原代码
💻 CPP
字号:
#define N 32
#define MIN_KEY -1
#define MAX_KEY 9999

void Adjust(int lost[],int s[],int sp,int k)
{
	int t,temp;
	t=(sp+k)/2;
	while (t>0)
	{
		if (s[sp]>s[lost[t]])
		{
			temp=sp;
			sp=lost[t];
			lost[t]=temp;
		}
		t/=2;
	}
	lost[0]=sp;
}

int K_Merge(int k)
{
	int lost[N],s[N+1];
	int i,t;
	for (i=0;i<k;i++)
		s[i]=get_next(i);
	s[k]=MIN_KEY;
	for (i=0;i<k;i++)
		lost[i]=k;
	for (i=k-1;i>=0;i--)
		Adjust(lost,s,i,k);
	while (s[lost[0]]!=MAX_KEY)
	{
		t=lost[0];
		put_record(&s[t]);
		s[t]=get_next(t);
		Adjust(lost,s,t,k);
	}
}
		

⌨️ 快捷键说明

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