Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Сортировка вставками в PHP  (Прочитано 490 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DenisVASI

  • Автор темы
  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
Сортировка вставками в PHP
« : 09 Сентября 2015, 20:23:18 »
Подскажите почему не работает?
Код: (php) [Выделить]
<?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) [Выделить]
<?php
    
function swap($mas = array(), $j$i){
        
$temp $mas[$j];
        
$mas[$j] = $mas[$i];
        
$mas[$i] = $temp;
        return 
$mas;
    }
    
$mas = array(447823235463452347655342346456334 ,234 ,2342342358766434);
    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 ?
« Последнее редактирование: 09 Сентября 2015, 21:36:31 от DenisVASI »

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Re: Сортировка вставками в PHP
« Ответ #1 : 10 Сентября 2015, 19:45:44 »
Код: (php) [Выделить]
        while($mas[$j] > $key && $j >= 0){
но почему он выдает мне PHP Notice:  Undefined offset: -1 ?

Поменяй местами условия.

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.