void partition( int * & l, int * & r) {
int * mid = l + rnd( ( int ) ( r - l) ) ;
swap( * mid, * l) ;
mid = l++ ;
int * j = l;
while ( j < r) {
if ( * j < * mid) {
swap( * ( j++ ) , * ( l++ ) ) ;
} else if ( * j > * mid) {
swap( * j, * ( -- r) ) ;
} else ++ j;
}
swap( * mid, * ( l - 1 ) ) ;
}
void quick_sort( int * l, int * r) {
int * i = l, * j = r;
partition( i, j) ;
if ( l < i - 1 ) {
quick_sort( l, i) ;
}
if ( j < r - 1 ) {
quick_sort( j, r) ;
}
}
dm9pZCBwYXJ0aXRpb24oaW50ICogJiBsLCBpbnQgKiAmIHIpIHsKICBpbnQgKiBtaWQgPSBsICsgcm5kKChpbnQpIChyIC0gbCkpOwogIHN3YXAoKm1pZCwgKmwpOwogIG1pZCA9IGwrKzsKICBpbnQgKiBqID0gbDsKICB3aGlsZSAoaiA8IHIpIHsKICAgIGlmICgqaiA8ICptaWQpIHsKICAgICAgc3dhcCgqKGorKyksICoobCsrKSk7CiAgICB9IGVsc2UgaWYgKCpqID4gKm1pZCkgewogICAgICBzd2FwKCpqLCAqKC0tcikpOwogICAgfSBlbHNlICsrajsKICB9CiAgc3dhcCgqbWlkLCAqKGwgLSAxKSk7Cn0KCnZvaWQgcXVpY2tfc29ydChpbnQgKiBsLCBpbnQgKiByKSB7CiAgaW50ICogaSA9IGwsICogaiA9IHI7CiAgcGFydGl0aW9uKGksIGopOwogIGlmIChsIDwgaSAtIDEpIHsKICAgIHF1aWNrX3NvcnQobCwgaSk7CiAgfQogIGlmIChqIDwgciAtIDEpIHsKICAgIHF1aWNrX3NvcnQoaiwgcik7CiAgfQp9Cg==
compilation info
prog.cpp: In function ‘void partition(int*&, int*&)’:
prog.cpp:2:36: error: ‘rnd’ was not declared in this scope
int * mid = l + rnd((int) (r - l));
^
prog.cpp:3:16: error: ‘swap’ was not declared in this scope
swap(*mid, *l);
^
stdout