Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2014
Помог: 0 раз(а)
|
Помогите плиз. Взял за основу http://ru[dot]wikibooks[dot]org/wiki/При[dot][dot][dot]строй_сортировки
и сделал такой код:
PHP:
скопировать код в буфер обмена
<?PHP "name" => "error.txt", "size" => 200, "type" => "dfe", "mod" => 1392502979 ), "name" => "gifs_03_yapfiles.ru.gif", "size" => 4282106, "type" => "abc", "mod" => 1394738534, ), "name" => "readme.txt", "size" => 1, "type" => "ytr", "mod" => 1391309100 ), "name" => "readme.txt", "size" => 1, "type" => "qqq", "mod" => 1391309100 ) ); function ascii($array, $i, $base, $att){ $ord = ''; for($k = 0; $k < $cnt; $k++){ $int = ord($array[$i][$att][$k]); $ord .= $int; } return (int)$ord; } function quicksort (&$array, $att, $l=0, $r=0) { if($r === 0 ) $r = count($array)-1; $i = $l; $base = 1; $j = $r; do { while (ascii($array, $i, $base, $att) < ascii($array, $base,$base, $att)) $i++; while (ascii($array, $j, $base, $att) > ascii($array, $base, $base, $att)) $j--; if ($i <= $j) { if (ascii ($array, $i, $base, $att) > ascii ($array, $j, $base, $att)) list($array[$i], $array[$j]) = array($array[$j], $array[$i]); $i++; $j--; } }while ($i <= $j); if ($i < $r) quicksort ($array, $att, $i, $r); if ($j > $l) quicksort ($array, $att, $l, $j); } $a = "type"; $s = $arra; quicksort($s, $a); $d= $s; printf('Скрипт выполнялся %.4F сек.', $time); ?>
Если массив <3 элементов - все норм. Если больше - белый экран. Подскажите, пожалуйста, что не так в коде. И как его можно улучшить. Спасибо
|