//排列
#include<stdio.h>
#include<stdlib.h>
#define MAX_NUM 1024
int an[MAX_NUM+10];
int MyCompare(const void *e1,const void *e2)
{
return *((int *)e1)-*((int *)e2);
}
int main()
{
int M;
int n,k,i,j;
scanf("%d",&M);
for(int m=0;m<M;m++)
{
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&an[i]);
an[0]=100000;
for(i=0;i<k;i++)
{
for(j=n;j>=1&&an[j-1]>an[j];j--);
if(j>=1)
{
int nMinLarger=an[j];
int nMinIdx=j;
for(int kk=j;kk<=n;kk++)
{
if(nMinLarger>an[kk]&&an[kk]>an[j-1])
{
nMinLarger=an[kk];
nMinIdx=kk;
}
}
an[nMinIdx]=an[j-1];
an[j-1]=nMinLarger;
qsort(an+j,n-j+1,sizeof(int),MyCompare);
}
else
{
for(j=1;j<=n;j++)
an[j]=j;
}
}
for(j=1;j<=n;j++)
printf("%d ",an[j]);
printf("\n");
}
return 0;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步