Kiss Gabor wrote:
> In article <[EMAIL PROTECTED]>,
>       =?UTF-8?B?RmFyYWfDsyBKw6Fub3M=?= <[EMAIL PROTECTED]> writes:
>> Ez szerintem gyorsabb lesz:
>>
>> for ($i=0; $i<$n; $i+=3 )
>> {
>>     $x          = $tomb[$i];
>>     $tomb[$i]        = $tomb[$i+2];
>>     $tomb[$i+2] = $x;
>> }
> 
> 4.5 masodperc. :-/


Ez érdekes. Írtam egy kis tesztprogramot a feladatra (elküldöm
magánban). Az általad írt és a fenti megoldás van benne (plusz egy
adatfeltöltés).

A lényegi része a következő:

sub t1()
{
    my $i;
    my $x;

    for ( $i=0; $i<$bnum; $i+=3 )
    {
        $x              = $array[$i];
        $array[$i]      = $array[$i+2];
        $array[$i+2]    = $x;
    }
}


sub t2()
{
    $str =~ s/(.)(.)(.)/$3$2$1/g;
}


A progi szerint a tömbös megoldás kb. 2-ször gyorsabb (az én gépemen).

(Az persze könnyen meglehet, hogy a tesztprogram nem jó modellezi a
feladatot.)


Üdv
Fari
_________________________________________________
linux lista      -      [email protected]
http://mlf2.linux.rulez.org/mailman/listinfo/linux

válasz