Программирование > Perl

рассортировка массива

<< < (2/2)

Chs:

--- Цитировать ---AliMamed (30-03-2001 11:33):
меняет порядок элементов массива в произвольном порядке
--- Конец цитаты ---
такой нет, IMHO.

:

--- Цитировать ---AliMamed (30-03-2001 11:33):
меняет порядок элементов массива в произвольном порядке
--- Конец цитаты ---

perldoc -q shuffle

:
Точно. :)

--- Код: ---
     Use this:

         # fisher_yates_shuffle( \\@array ) :
         # generate a random permutation of @array in place
         sub fisher_yates_shuffle {
             my $array = shift;
             my $i;
             for ($i = @$array; --$i; ) {
                 my $j = int rand ($i+1);
                 next if $i == $j;
                 @$array[$i,$j] = @$array[$j,$i];
             }
         }

         fisher_yates_shuffle( \\@array );    # permutes @array in place

     You\'ve probably seen shuffling algorithms that work using
     splice, randomly picking another element to swap the current
     element with:

         srand;
         @new = ();
         @old = 1 .. 10;  # just a demo
         while (@old) {
             push(@new, splice(@old, rand @old, 1));
         }

     This is bad because splice is already O(N), and since you do it
     N times, you just invented a quadratic algorithm; that is,
     O(N**2). This does not scale, although Perl is so efficient that
     you probably won\'t notice this until you have rather largish
     arrays.

--- Конец кода ---

AliMamed:

--- Цитировать ---NAS (30-03-2001 17:12):
Точно. :)

--- Конец цитаты ---
что точно-то?

у меня тута ни шелла ни перлдока нету, но если енто его ответ, то значит не фига такой функции нету, потому что так как в первом примере показано так (ну почти так=)) я и делаю

:
А у меня тут тоже шела нет :)
Есть Перл от Activstate, а там встроенный perldoc.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии