1178.c

来自「平时acm训练时ac的源代码」· C语言 代码 · 共 40 行

C
40
字号
#include <stdio.h>

int a[10000]={0};
int b[10000]={0};
int q,l,r,j,i,x,n;

void p(int l,int r)
{
     j=r;i=l;x=a[i];
     while (i!=j) 
	 {
		 while (a[j]>x&&j>i) j--;
           if (i<j) 
		   {
				q=a[i];a[i]=a[j];a[j]=q;
                q=b[i];b[i]=b[j];b[j]=q;
				i++;
		   }
         while (a[i]<x&&j>i) i++;
           if (i<j)
		   {
				q=a[j];a[j]=a[i];a[i]=q;
                q=b[i];b[i]=b[j];b[j]=q;
				j--;
		   }
     }
	 x=a[i];
     if(l<i-1) p(l,i-1);
     if(i+1<r) p(i+1,r);
}

main()
{
	 scanf("%d",&n);
     for(i=1;i<=n;i++)	scanf("%d",&a[i]);
	 for(i=1;i<=n;i++)	b[i]=i;
     p(1,n);
     for(i=1;i<=n/2;i++)  printf("%d %d\n",b[2*i-1],b[2*i]);
	 getch();
}

⌨️ 快捷键说明

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