Сортировка массива с использованием рекурсии
Категория: Perl
2011-08-26 22:22:14
Из массива извлекается любой элемент (ключевой), который удаляется после этого из массива. Получившийся массив делется на два массива (левый и правый). В левый массив отправляются элементы строго меньшие ключевого, в правый - больше или равные ему. Затем эти массивы отсортировываются и соединяются, вставляя между собой ключевой элемент.
code: #perl
- #!/usr/bin/perl
- use warnings;
- sub recursiveSort
- {
- return () unless @_;
- my $key=shift;
- my @left;
- my @right;
- for(@_)
- {
- if($_<$key) { push @left, $_; }
- else { push @right, $_; }
- }
- return (recursiveSort(@left), $key, recursiveSort(@right));
- }
- print "$_\n" for recursiveSort(@ARGV);
Поделиться: