Σε ότι αφαρά την ταξινόμηση πινάκων θέλω να παρατηρήσω τα εξής:
1)Οι πίνακες 2-διαστάσεων "κάθονται" στη μνήμη (που είναι μονοδιάστατη) σαν μονοδιάστατοι πίνακες δηλ. σε μια σειρά συνεχόμενων θέσεων μνήμης.
2) Οι πίνακες 2-διαστάσεων αποθηκεύονται κατά γραμμή στη μνήμη δηλ. Η 1η γραμμή στις πρώτες θέσεις μνήμης, ακολουθόύν τα στοιχεία της 2ης γραμμής κ.ο.κ
3) Ο συνηθισμένος τρόπος προσπέλασης των στοιχείων πίνακα 2-διαστάσεων είναι κατά γραμμή όπως και η "φυσική" του αποθήκευση και συνεπώς η εμφάνιση των στοιχείων με αυτό τον τρόπο σε ένα "συνολικά" ταξινομημένο πίνακα εμφανίζει όλα τα στοιχεία του πίνακα σε μια αύξουσα ή φθίνουσα σειρά.
3) Έχει λοιπόν νόημα να δούμε την ταξινόμηση πίνακα 2-διαστάσεων συνολικά και όχι μόνο κατά γραμμή ή στήλη.
έστω λοιπόν πίνακας Α[Ν,Μ]
ΠΛΗΘΟΣ<--Ν*Μ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ ΠΛΗΘΟΣ
ΓΙΑ Κ ΑΠΟ ΠΛΗΘΟΣ ΜΕΧΡΙ Ι ΜΕ ΒΗΜΑ -1
ΤΡ_ΓΡ<-- Κ div Μ + 1
ΤΡ_ΣΤ<-- Κ mod Μ
ΑΝ ΤΡ_ΣΤ=0 ΤΟΤΕ
ΤΡ_ΣΤ<--Μ
ΤΡ_ΓΡ<-- ΤΡ_ΓΡ-1
ΤΕΛΟΣ_ΑΝ
ΠΡ_ΓΡ<-- ΤΡ_ΓΡ
ΠΡ_ΣΤ<-- ΤΡ_ΣΤ - 1
ΑΝ ΠΡ_ΣΤ=0 ΤΟΤΕ
ΠΡ_ΣΤ<--Μ
ΠΡ_ΓΡ<--ΤΡ_ΓΡ - 1
ΤΕΛΟΣ_ΑΝ
ΑΝ Α[ΤΡ_ΓΡ, ΤΡ_ΣΤ] < Α[ΠΡ_ΓΡ,ΠΡ_ΣΤ] ΤΟΤΕ
Τ<-- Α [ΠΡ_ΓΡ, ΠΡ_ΣΤ]
Α[ΠΡ_ΓΡ, ΠΡ_ΣΤ]<-- Α[ΤΡ_ΓΡ, ΤΡ_ΣΤ]
Α[ΤΡ_ΓΡ, ΤΡ_ΣΤ]<-- Τ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ