Подскажите почему не работает?
<?php
function swap(array $arr, $j, $i){
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
return $arr;
}
for($i = 0; $i < 10; $i++) $mas[$i] = 10 - $i;
for($i = 0; $i < 10; $i++) echo "$mas[$i] ";
echo "<br>";
for($i = 1; $i < sizeof($mas); $i++){
$key = $mas[$i];
$j = $i - 1;
while($mas[$j] > $key and $j > 0){
swap($mas, $j+1, $j);
$j--;
}
}
for($i = 0; $i < 10; $i++) echo "$mas[$i] ";
?>
Вернее работает, но на выходе массив не изменяется.
Функцию swap нужно оставить.
Пользователь решил продолжить мысль 09 Сентября 2015, 21:36:31:
Так случилось, что я уже сам нашел ответ
<?php
function swap($mas = array(), $j, $i){
$temp = $mas[$j];
$mas[$j] = $mas[$i];
$mas[$i] = $temp;
return $mas;
}
$mas = array(44, 78, 23, 23, 546, 345, 234, 7655, 34, 234, 64563, 34 ,234 ,234, 234, 235, 876, 64, 34);
for($i = 0; $i < sizeof($mas); $i++) echo "$mas[$i] ";
echo "<br>";
for($i = 1; $i < sizeof($mas); $i++){
$key = $mas[$i];
$j = $i - 1;
while($mas[$j] > $key && $j >= 0){
$mas = swap($mas, $j+1, $j);
$j--;
}
}
for($i = 0; $i < sizeof($mas); $i++) echo "$mas[$i] ";
?>
но почему он выдает мне PHP Notice: Undefined offset: -1 ?