#!/usr/bin/perl -w # Una possibile implementazione per il quicksort use strict; my(@arrayInt, @tot); @arrayInt = (4, 2, 5, 1, 5, 6); sub smaller { my ($pivot, @list, $x, @minori); ($pivot, @list) = @_; foreach $x (@list) { if ($x < $pivot) { @minori = (@minori, $x); } } return @minori; } sub greater { my ($pivot, @list, $x, @maggiori); ($pivot, @list) = @_; foreach $x (@list) { if ($x >= $pivot) { @maggiori = (@maggiori, $x); } } return @maggiori; } sub quicksort { my (@min, @mag); if (@_ <= 1) { return @_ } @min = smaller(@_); @mag = greater(@_); return (quicksort(@min), $_[0], quicksort(@mag)); } print "Array originale: @arrayInt\n"; @tot = quicksort(@arrayInt); print "Ordinati: @tot\n"; sub quicksort_1 { if (@_ <= 1) { return @_ } return (quicksort(smaller(@_), $_[0], quicksort(greater(@_)))); } print "Array originale: @arrayInt\n"; @tot = quicksort_1(@arrayInt); print "Ordinati: @tot\n";