Сортировка массива с использованием рекурсии

Из массива извлекается любой элемент (ключевой), который удаляется после этого из массива. Получившийся массив делется на два массива (левый и правый). В левый массив отправляются элементы строго меньшие ключевого, в правый - больше или равные ему. Затем эти массивы отсортировываются и соединяются, вставляя между собой ключевой элемент.

code: #perl
  1. #!/usr/bin/perl
  2.  
  3. use warnings;
  4.  
  5. sub recursiveSort
  6. {
  7.     return () unless @_;
  8.     my $key=shift;
  9.     my @left;
  10.     my @right;
  11.     for(@_)
  12.     {
  13.         if($_<$key) { push @left, $_; }
  14.         else        { push @right, $_; }
  15.     }
  16.     return (recursiveSort(@left), $key, recursiveSort(@right));
  17. }
  18.  
  19. print "$_\n" for recursiveSort(@ARGV);
Поделиться:

Похожие статьи: