Førstesiden / PHP / shellsort.html
Shellsort i PHP
Koden nedenfor viser hvordan man kan skrive en enkel(?) sorteringsfunksjon i PHP. Vi har jo sort(); Men det er uansett gøy å få det til :) Jada jada..'finne opp hjulet på nytt..'.
<?
function shellsort( $a, $N )
{
//$a er tabellen og $N er antall plasser i tabellen.
//OBS OBS: husk at en tabell begynner på plass 0
$i; $j; $v;
for ( $h = 1; $h <= $N/9; $h = ( 3 * $h + 1 ) );
for ( ; $h > 0; $h /= 3 )
{
for ( $i = $h + 1; $i <= $N; $i += 1 )
{
$v = $a[$i];
$j = $i;
while ( ( $j > $h ) && ( $a[$j - $h] > $v ) )
{
$a[$j] = $a[$j-$h];
$j -= $h;
}
$a[$j] = $v;
}
}
return $a;
}
$tabell = Array(1,4,5,6,2,7,2);
$sortert = shellsort($tabell,6);
print_r($sortert);
?>
Hastighetsmessig pleier man å si at denne ligger som nummer 4. Den kan også være ganske treg ved 'uheldige valgte tall'.
Skrevet av Sindre Mathisen 2002
Utskriftsvennlig versjon | Forslag til endring av artikkel | Skriv ut | Ny kommentar
Det er ingen kommentarer til denne artikkelen. | |
|