UVa 299 Train Swapping

UVa 299 Train Swapping

冒泡排序,并记录交换次数。
以下是我的代码:

#include < algorithm >
#include
< cstdio >
using   namespace  std;
const   int  kMaxn( 57 );

int  main()
{
    
/*
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    //
*/

    
int  T;
    scanf(
" %d " , & T);
    
while (T -- )
    {
        
int  n;
        scanf(
" %d " , & n);
        
int  r[kMaxn];
        
for ( int  i = 1 ;i <= n;i ++ )
            scanf(
" %d " , & r[i]);

        
int  ans( 0 );
        
for ( int  i = n;i >= 2 ;i -- )
            
for ( int  j = 1 ;j < i;j ++ )
                
if (r[j] > r[j + 1 ])
                {
                    swap(r[j],r[j
+ 1 ]);
                    ans
++ ;
                }

        printf(
" Optimal train swapping takes %d swaps.\n " ,ans);
    }

    
return   0 ;
}

你可能感兴趣的:(UVa 299 Train Swapping)