Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование gt 
:(
    Опции темы
FrenchCheese
Дата 11.11.2010, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 8.9.2010

Репутация: нет
Всего: нет



Код

sub shellsort {
    my $array=shift;
 
    for ( $shell = 1; $shell < @$array; $shell = 2 * $shell + 1 ) {
    }
 
    do {
        $shell=int(($shell-1)/2);
        for ($i=$shell; $i<@$array; $i++) {
            for($j=$i-$shell; $j>=0 && $array->[$j] gt $array->[$j+$shell]; $j-=$shell ){
                @$array[ $j, $j + $shell ] = @$array[ $j + $shell, $j ];
            }
        }
    } while $shell > 1;
}


есть вот такой вот прекрасный код, сортировочка, работает ;)
но вот у меня вопрос, почему в десятой строчке используется gt вместо >?
PM MAIL   Вверх
Jimy
Дата 12.11.2010, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



Имея перед глазами только данный код нельзя однозначно ответить на этот вопрос.
Может быть потому что сортируются строки. Либо нужно чтобы значения сортировались как строки а не как числа (при некоторых входных данных это может дать различные результаты).
PM   Вверх
FrenchCheese
Дата 12.11.2010, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 8.9.2010

Репутация: нет
Всего: нет



Цитата(Jimy @ 12.11.2010,  09:46)
Имея перед глазами только данный код нельзя однозначно ответить на этот вопрос.
Может быть потому что сортируются строки. Либо нужно чтобы значения сортировались как строки а не как числа (при некоторых входных данных это может дать различные результаты).

хм, но тем не менее если поставить > то перестает работать, да и сортируются все таки не строки а числа...
PM MAIL   Вверх
Jimy
Дата 12.11.2010, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



Данная функция работает в обоих случаях ('>' и 'gt');

Однако, на исходном массиве: 
Код

my @arr = qw(1 8 3 6 9 2 0 3 05 4);

> дает в результате
Код

0 1 2 3 3 4 05 6 8 9

а gt дает 
Код

0 05 1 2 3 3 4 6 8 9

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.