Ταξινόμηση πίνακα χωρίς τη χρήση της λειτουργίας ταξινόμησης

Ξεκινώντας

Πρώτα από όλα αρχικοποιούμε μια μεταβλητή $ max με την 1η τιμή του πίνακα.

Στη συνέχεια θα κάνουμε ένα βρόχο μέχρι το τραπέζι να περιέχει ακόμα στοιχεία.

Χρησιμοποιώντας τη λειτουργία συναρμολόγησης, θα αδειάσουμε το τραπέζι.

Ψευδοκώδικας

 IF πίνακα περιέχει στοιχεία που βρίσκουν τη μέγιστη τιμή καθορίζει τη θέση του στοιχείου που βρέθηκε προσθέστε το στοιχείο στο επάνω μέρος του πίνακα ταξινομημένο, με αύξουσα σειρά προσθέστε το στοιχείο στο τέλος του πίνακα ταξινομημένο - κατά φθίνουσα σειρά διαγράψτε τα στοιχεία που βρέθηκαν με τη διακοπή σύνδεσης κατάσταση για το επαναφορά του βρόχου επαναφέρετε τη θέση max $ με το πρώτο στοιχείο στον πίνακα μειωμένο με το συνδυασμό END AS 

Η κωδικοποίηση

 #! / usr / bin / perl χρήση αυστηρών · χρήση προειδοποιήσεων. my @ tab = qw / 9 3 7 14 8 7 25 12 1 6 /; μου ($ n, $ max, @ tri, @ tri_desc); $ max = $ καρτέλα [0]; εκτύπωση "@tab \ n"; ενώ (@tab) {$ _> $ max και $ max = $ _ για @tab. για (@tab) {$ n ++ · τελευταίο εάν $ max == $ _} unshift @ tri, $ max; ώθηση @ tri_desc, $ max; (@ tab, $ n-1, 1); $ n = 0; $ max = $ καρτέλα [0]; } εκτύπωση "αύξουσα τάξη: \ \ n"; εκτύπωση "φθίνουσα σειρά: \ _desc \ n"; __ΤΕΛΟΣ__ 

Αποτελέσματα

Όταν χρησιμοποιείτε τον ακόλουθο συνδυασμό: 9 3 7 14 8 7 25 12 1 6

Αύξουσα σειρά: 1 3 6 7 7 8 9 12 14 25

Φθίνουσα σειρά: 25 14 12 9 8 7 7

Προηγούμενο Άρθρο Επόμενο Άρθρο

Οι Καλύτερες Συμβουλές