RE求调
查看原帖
RE求调
661595
a2lyaXNhbWUgbWFyaXNh楼主2023/2/1 20:56
# include <cstdio>
# include <cstdlib>
# include <ctime>

void swap ( int & a , int & b )
{
  int t = a ;
  a = b ;
  b = t ;
}

int a [ 114514 ] ;

void quick_sort ( int l , int r )
{  
  if ( l == r )
  {
    return ;
  }
  int x = a [ l + rand ( ) % ( r - l + 1 ) ], i = l - 1 , j = r + 1 ;
  while ( i < j )
  {
    do
    {
      i ++ ;
    } while ( a [ i ] < x ) ;
    do {
      j -- ;
    } while ( a [ j ] > x ) ;
    if ( i < j ) 
    {
      swap ( a[ i ] , a[ j ] ) ;
    }
  }
  quick_sort ( l , j ) , quick_sort ( j + 1 , r ) ;
}

int main ( )
{
  srand ( time ( NULL ) ) ;
  int n ;
  scanf ( "%d" , & n ) ;
  for ( int i = 0 ; i < n ; ++ i )
  {
    scanf ( "%d" , & a [ i ] ) ;
  }
  quick_sort ( 0 , n - 1 );
  for ( int i = 0 ; i < n ; ++ i )
  {
    printf ( "%d " , a [ i ] ) ;
  }
  return 0;
}

果然我还是不能驾驭传统 C 和阴间码风(((

2023/2/1 20:56
加载中...