Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
quicksort
(ii)
/KUCEQPUVCPVRGTJCRUVQ+VKUQWTGUVKOCVGQHJQYNCTIGVJGKPRWV
OWUVDGKPQTFGTHQTSWKEMUQTVVQDGHCUVGTVJCPKPUGTVKQPUQTV
5QTVNGHVUWDCTTC[+HKVKUUOCNNWUGKPUGTVKQPUQTVQVJGTYKUGSWKEMUQTV
+HNGHVUWDCTTC[KUUOCNNNGCXGKVWPUQTVGF1VJGTYKUGUQTVYKVJSWKEMUQTV
if ( splitPoint first M )
quicksort2a( a, first, splitPoint 1);
+HTKIJVUWDCTTC[KUUOCNNNGCXGKVWPUQTVGF1VJGTYKUGUQTVYKVJSWKEMUQTV
if ( last splitPoint M )
quicksort2a( a, splitPoint + 1, last);
return;
SUQTV
CUQTVUVJGCTTC[C
4GEWTUKXGHWPEVKQPSWKEMUQTV
UJQWNFDGECNNGFQPN[D[SUQTV
UJQYPDGNQY
.KMGSWKEMUQTVC
GZEGRVVJCVVJGOCZKOWOFGRVJQHTGEWTUKQPECPPQVGZEGGF
NI
P
6JGUGEQPFTGEWTUKXGECNNVQSWKEMUQTVKUTGRNCEGFD[CNQQR
2CTVKVKQPC=HKTUV?C=NCUV?LWUVCUDGHQTG
5QTVVJGUOCNNGTUWDCTTC[D[CTGEWTUKXGECNNVQSWKEMUQTV
WPNGUUKVU
UK\GKUNGUUVJCP/6JGPUQTVVJGNCTIGTUWDCTTC[D[TGRGCVKPI
VJGNQQRTCVJGTVJCPECNNKPISWKEMUQTVTGEWTUKXGN[
return;
else
4KIJVUWDCTTC[KUUOCNNGT
if ( last splitPoint M )
quicksort3( a, splitPoint + 1, last);
last = splitPoint 1;
SUQTV
CUQTVUVJGCTTC[C