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