<?php ///////////////////////////////////////////// function quickSortAsc(&$tab, $lewo, $prawo, $key) { if ($lewo<$prawo) { $k=$lewo; $p=$tab[$lewo][$key]; for ($i=$lewo+1;$i<$prawo;++$i) if ($p>$tab[$i][$key]) { ++$k; $temp=$tab[$i]; $tab[$i]=$tab[$k]; $tab[$k]=$temp; } $temp=$tab[$lewo]; $tab[$lewo]=$tab[$k]; $tab[$k]=$temp; quickSortAsc($tab, $lewo, $k-1, $key); quickSortAsc($tab, $k+1, $prawo, $key); } } ///////////////////////////////////////////// function quickSortDesc(&$tab, $lewo, $prawo, $key) { if ($lewo<$prawo) { $k=$lewo; $p=$tab[$lewo][$key]; for ($i=$lewo+1;$i<=$prawo;++$i) if ($p<=$tab[$i][$key]) { ++$k; $temp=$tab[$i]; $tab[$i]=$tab[$k]; $tab[$k]=$temp; } $temp=$tab[$lewo]; $tab[$lewo]=$tab[$k]; $tab[$k]=$temp; quickSortDesc($tab, $lewo, $k-1, $key); quickSortDesc($tab, $k+1, $prawo, $key); } } ?>
Obydwie funkcje sortują tablicę $tab według klucza $key.
quickSortDesc() - sortuje malejąco
quickSortAsc() - sortuje rosnąco
I jak sortuje tablicę rosnąco wg. klucza exp to nie wiadomo czemu potwór z exp=655 ląduje pomiędzy potworami z exp=25000 i exp=30000 I teraz mam pytanie:
Gdzie jest błąd? Prosiłbym o poprawienie ;D Thx ;p;p