void guibing(int a[],int n)
{
}
ÎÒÒѾ³õʼ»¯ÁËÒ»¸öÊý×éa[30000]ÇÒ¸³Öµ,Ïë¶ÔÕâ¸öÊý×é½øÐй鲢ÅÅÐò¡£
µ«ÊǾßÌåÔõôʵÏÖ»¹ÊDz»ÖªµÀ¡£ÇóÔ´Âë
±ÈÈç˵¡£ÏÈÒ»¸öÒ»¸öÅÅÐò£¬È»ºóÔÙ½«ÅÅÐòºÃµÄÁ½¸öÁ½¸öÅÅÐò¡£ÄÇôÕâ¸öÅÅÐò¹ý³ÌÖÐÔõô¾ßÌåʵÏÖ¡£
156342
15 36 24
Ôõô°Ñ15ºÍ36ºÏÆðÀ´×é³É1356?
¹é²¢ÅÅÐò²»ÊǰÑ15Óë36ºÏÆðÀ´±ä³É1356°É£¿ÖмäÓ¦¸ÃÓпոñ¸ô¿ª±íʾÁ½¸öÊý£¡
ÊÇÕâÑùµÄ£º
Ê×ÏȱȽÏÍ· 1 5
3 6
·¢ÏÖ1±È½ÏС£¬¾Í°Ñ1ÒÆµ½Ò»¸öÁÙʱÊý×éÖУ¬
ÁÙʱ 1
5
3 6
ÔÙ·¢ÏÖ3±È½ÏС
ÁÙʱ 1 3
5
6
·¢ÏÖ5±È6С
ÁÙʱ 1 3 5
6
Ö»ÓÐÒ»¸öÊý×éÁË£¬¾ÍÈ«ÒÆ¶¯ÁÙʱÊý×éÖÐ
ÁÙʱ 1 3 5 6
ÔÙ°ÑÁÙʱÊý×éÖеÄÔªËØÔÙÈ«²¿¸´ÖÆ»ØÀ´¡£
¹é²¢´úÂ룺C/C++ code:
#include <stdio.h>
#define MAXN 22000
int a[MAXN+1],c[MAXN+1];
long long cnt;
void MergeSort(int l, int r){
int mid, i, j, tmp;
if( r > l+1 ){
mid = (l+r)/2;
MergeSort(l, mid);
MergeSort(mid, r);
tmp = l;
for( i=l, j=mid; i < mid && j < r; ){
if( a[i] > a[j] ){
c[tmp++] = a[j++];
cnt += mid-i;
}
else c[tmp++] = a[i++];
}
if( j < r ) for( ; j < r; ++j ) c[tmp++] = a[j];
else for( ; i < mid; ++i ) c[tmp++] = a[i];
for ( i