Ταξινόμηση Στοιχείων Πίνακα στη ΓΛΩΣΣΑ

Εισαγωγή

Η ταξινόμηση είναι μια από τις πιο σημαντικές λειτουργίες στον προγραμματισμό, καθώς επιτρέπει την οργάνωση των δεδομένων με τρόπο που διευκολύνει την αναζήτηση, την ανάλυση και την επεξεργασία τους. Υπάρχουν πολλές μέθοδοι ταξινόμησης, κάθε μια από τις οποίες έχει τα δικά της πλεονεκτήματα και μειονεκτήματα.

Στόχος αυτού του μαθήματος είναι να κατανοήσετε:

  • Τι είναι η ταξινόμηση και γιατί είναι σημαντική.
  • Πώς να υλοποιείτε τις βασικές μεθόδους ταξινόμησης στη ΓΛΩΣΣΑ.
  • Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα κάθε μεθόδου.
  • Πότε να χρησιμοποιείτε κάθε μέθοδο.

Ταξινόμηση με Φυσαλίδα (Bubble Sort)

Ορισμός

Η ταξινόμηση με φυσαλίδα (Bubble Sort) είναι μια απλή μέθοδος ταξινόμησης που συγκρίνει κάθε ζευγάρι γειτονικών στοιχείων και τα εναλλάσσει αν βρίσκονται σε λάθος σειρά. Η διαδικασία επαναλαμβάνεται μέχρι ο πίνακας να είναι πλήρως ταξινομημένος.

Χαρακτηριστικά

  • Απλή Υλοποίηση: Η μέθοδος είναι πολύ απλή στην υλοποίηση.
  • Χρονική Πολυπλοκότητα: Η χρονική πολυπλοκότητα είναι O(n²) στο χειρότερο και μέσο περίπτωση.
  • Χώρος Μνήμης: Δεν απαιτεί επιπλέον χώρο μνήμης (in-place ταξινόμηση).
  • Σταθερότητα: Η μέθοδος είναι σταθερή, δηλαδή διατηρεί τη σχετική σειρά των ισών στοιχείων.

Αλγόριθμος Ταξινόμησης με Φυσαλίδα

Ο αλγόριθμος της ταξινόμησης με φυσαλίδα μπορεί να περιγραφεί ως εξής:

  1. Επαναλάβετε τις ακόλουθες ενέργειες για κάθε στοιχείο του πίνακα:
    • Συγκρίνετε κάθε ζευγάρι γειτονικών στοιχείων.
    • Αν το αριστερό στοιχείο είναι μεγαλύτερο (ή μικρότερο, ανάλογα με την σειρά ταξινόμησης) από το δεξιό, εναλλάξτε τα.
  2. Συνεχίστε μέχρι να μην γίνονται καμιά εναλλαγή κατά μια πλήρη διαδρομή του πίνακα.

Αύξουσα Ταξινόμηση

Για αύξουσα ταξινόμηση, εναλλάσσονται τα στοιχεία αν το αριστερό είναι μεγαλύτερο από το δεξιό.

Παράδειγμα:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Φυσαλίδα_Αύξουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[10], i, j, temp, ταξινομημένος
ΑΡΧΗ
  ! Διάβασε τα στοιχεία του πίνακα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
    ΔΙΑΒΑΣΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Φυσαλίδα (Αύξουσα)
  ταξινομημένος ← 0
  ΟΣΟ ταξινομημένος = 0 ΕΠΑΝΑΛΑΒΕ
    ταξινομημένος ← 1
    ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
      ΑΝ π[i] > π[i + 1] ΤΟΤΕ
        temp ← π[i]
        π[i] ← π[i + 1]
        π[i + 1] ← temp
        ταξινομημένος ← 0
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένου πίνακα
  ΓΡΑΨΕ 'Ο ταξινομημένος πίνακας (Αύξουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Φθίνουσα Ταξινόμηση

Για φθίνουσα ταξινόμηση, εναλλάσσονται τα στοιχεία αν το αριστερό είναι μικρότερο από το δεξιό.

Παράδειγμα:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Φυσαλίδα_Φθίνουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[10], i, j, temp, ταξινομημένος
ΑΡΧΗ
  ! Διάβασε τα στοιχεία του πίνακα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
    ΔΙΑΒΑΣΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Φυσαλίδα (Φθίνουσα)
  ταξινομημένος ← 0
  ΟΣΟ ταξινομημένος = 0 ΕΠΑΝΑΛΑΒΕ
    ταξινομημένος ← 1
    ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
      ΑΝ π[i] < π[i + 1] ΤΟΤΕ
        temp ← π[i]
        π[i] ← π[i + 1]
        π[i + 1] ← temp
        ταξινομημένος ← 0
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένου πίνακα
  ΓΡΑΨΕ 'Ο ταξινομημένος πίνακας (Φθίνουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ταξινόμηση με Επιλογή (Selection Sort)

Ορισμός

Η ταξινόμηση με επιλογή (Selection Sort) είναι μια μέθοδος ταξινόμησης όπου σε κάθε βήμα επιλέγεται το μικρότερο (ή μεγαλύτερο) στοιχείο από το μη ταξινομημένο μέρος του πίνακα και τοποθετείται στο τέλος του ταξινομημένου μέρους.

Χαρακτηριστικά

  • Απλή Υλοποίηση: Η μέθοδος είναι απλή στην υλοποίηση.
  • Χρονική Πολυπλοκότητα: Η χρονική πολυπλοκότητα είναι O(n²) σε όλα τα περιπτώσεις.
  • Χώρος Μνήμης: Δεν απαιτεί επιπλέον χώρο μνήμης (in-place ταξινόμηση).
  • Σταθερότητα: Η μέθοδος δεν είναι σταθερή, καθώς μπορεί να αλλάξει τη σχετική σειρά των ισών στοιχείων.

Αλγόριθμος Ταξινόμησης με Επιλογή

Ο αλγόριθμος της ταξινόμησης με επιλογή μπορεί να περιγραφεί ως εξής:

  1. Για κάθε θέση i από 1 μέχρι n-1:
    • Βρείτε το ελάχιστο (ή μέγιστο) στοιχείο στο μη ταξινομημένο μέρος του πίνακα (από i μέχρι n).
    • Εναλλάξτε το ελάχιστο (ή μέγιστο) στοιχείο με το στοιχείο στη θέση i.

Αύξουσα Ταξινόμηση

Για αύξουσα ταξινόμηση, επιλέγεται το ελάχιστο στοιχείο από το μη ταξινομημένο μέρος του πίνακα.

Παράδειγμα:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Επιλογή_Αύξουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[10], i, j, min_index, temp
ΑΡΧΗ
  ! Διάβασε τα στοιχεία του πίνακα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
    ΔΙΑΒΑΣΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Επιλογή (Αύξουσα)
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
    min_index ← i
    ΓΙΑ j ΑΠΟ i + 1 ΜΕΧΡΙ 10
      ΑΝ π[j] < π[min_index] ΤΟΤΕ
        min_index ← j
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    temp ← π[i]
    π[i] ← π[min_index]
    π[min_index] ← temp
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένου πίνακα
  ΓΡΑΨΕ 'Ο ταξινομημένος πίνακας (Αύξουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Φθίνουσα Ταξινόμηση

Για φθίνουσα ταξινόμηση, επιλέγεται το μέγιστο στοιχείο από το μη ταξινομημένο μέρος του πίνακα.

Παράδειγμα:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Επιλογή_Φθίνουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[10], i, j, max_index, temp
ΑΡΧΗ
  ! Διάβασε τα στοιχεία του πίνακα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
    ΔΙΑΒΑΣΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Επιλογή (Φθίνουσα)
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
    max_index ← i
    ΓΙΑ j ΑΠΟ i + 1 ΜΕΧΡΙ 10
      ΑΝ π[j] > π[max_index] ΤΟΤΕ
        max_index ← j
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    temp ← π[i]
    π[i] ← π[max_index]
    π[max_index] ← temp
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένου πίνακα
  ΓΡΑΨΕ 'Ο ταξινομημένος πίνακας (Φθίνουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Σύγκριση Μεθόδων Ταξινόμησης

Σύγκριση Φυσαλίδας και Επιλογής

Χαρακτηριστικό Φυσαλίδα (Bubble Sort) Επιλογή (Selection Sort)
Χρονική Πολυπλοκότητα (Χειρότερο) O(n²) O(n²)
Χρονική Πολυπλοκότητα (Καλύτερο) O(n) O(n²)
Χώρος Μνήμης O(1) O(1)
Σταθερότητα Ναι Όχι
Απλή Υλοποίηση Ναι Ναι
Καλή για Μικρούς Πίνακες Ναι Ναι
Καλή για Μεγάλους Πίνακες Όχι Όχι

Ποια Μέθοδος να Επιλέξω;

Η επιλογή της μεθόδου ταξινόμησης εξαρτάται από τις ακόλουθες παραμέτρους:

  • Μέγεθος Πίνακα: Για μικρούς πίνακες, και οι δύο μέθοδοι είναι αποδεκτές. Για μεγάλους πίνακες, είναι προτιμότερες πιο αποδοτικές μέθοδοι (π.χ. QuickSort, MergeSort).
  • Σταθερότητα: Αν χρειάζεται να διατηρηθεί η σχετική σειρά των ισών στοιχείων, επιλέξτε τη μέθοδο της φυσαλίδας.
  • Χώρος Μνήμης: Αν ο χώρος μνήμης είναι περιορισμένος, επιλέξτε μια μέθοδο in-place (και οι δύο μέθοδοι είναι in-place).
  • Απλή Υλοποίηση: Αν η απλότητα είναι σημαντική, επιλέξτε μια μέθοδο με απλή υλοποίηση (και οι δύο μέθοδοι είναι απλές).
  • Αύξουσα/Φθίνουσα Ταξινόμηση: Και οι δύο μέθοδοι μπορούν να χρησιμοποιηθούν για αύξουσα ή φθίνουσα ταξινόμηση.

Παραδείγματα Ταξινόμησης

Παράδειγμα 1: Ταξινόμηση Βαθμολογιών με Φυσαλίδα (Αύξουσα)

Ένα πρόγραμμα που ταξινομεί τις βαθμολογίες 10 μαθητών σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της φυσαλίδας:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Βαθμολογιών_Φυσαλίδα_Αύξουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: βαθμοί[10], i, j, temp, ταξινομημένος
ΑΡΧΗ
  ! Διάβασε τις βαθμολογίες
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ 'Δώσε τον βαθμό του ', i, '-ου μαθητή: '
    ΔΙΑΒΑΣΕ βαθμοί[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Φυσαλίδα (Αύξουσα)
  ταξινομημένος ← 0
  ΟΣΟ ταξινομημένος = 0 ΕΠΑΝΑΛΑΒΕ
    ταξινομημένος ← 1
    ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
      ΑΝ βαθμοί[i] > βαθμοί[i + 1] ΤΟΤΕ
        temp ← βαθμοί[i]
        βαθμοί[i] ← βαθμοί[i + 1]
        βαθμοί[i + 1] ← temp
        ταξινομημένος ← 0
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένων βαθμολογιών
  ΓΡΑΨΕ 'Οι ταξινομημένες βαθμολογίες (Αύξουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ βαθμοί[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 2: Ταξινόμηση Βαθμολογιών με Φυσαλίδα (Φθίνουσα)

Ένα πρόγραμμα που ταξινομεί τις βαθμολογίες 10 μαθητών σε φθίνουσα σειρά χρησιμοποιώντας τη μέθοδο της φυσαλίδας:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Βαθμολογιών_Φυσαλίδα_Φθίνουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: βαθμοί[10], i, j, temp, ταξινομημένος
ΑΡΧΗ
  ! Διάβασε τις βαθμολογίες
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ 'Δώσε τον βαθμό του ', i, '-ου μαθητή: '
    ΔΙΑΒΑΣΕ βαθμοί[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Φυσαλίδα (Φθίνουσα)
  ταξινομημένος ← 0
  ΟΣΟ ταξινομημένος = 0 ΕΠΑΝΑΛΑΒΕ
    ταξινομημένος ← 1
    ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
      ΑΝ βαθμοί[i] < βαθμοί[i + 1] ΤΟΤΕ
        temp ← βαθμοί[i]
        βαθμοί[i] ← βαθμοί[i + 1]
        βαθμοί[i + 1] ← temp
        ταξινομημένος ← 0
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένων βαθμολογιών
  ΓΡΑΨΕ 'Οι ταξινομημένες βαθμολογίες (Φθίνουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ βαθμοί[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 3: Ταξινόμηση Αριθμών με Επιλογή (Αύξουσα)

Ένα πρόγραμμα που ταξινομεί 15 αριθμούς σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της επιλογής:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Αριθμών_Επιλογή_Αύξουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[15], i, j, min_index, temp
ΑΡΧΗ
  ! Διάβασε τα στοιχεία του πίνακα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 15
    ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
    ΔΙΑΒΑΣΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Επιλογή (Αύξουσα)
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 14
    min_index ← i
    ΓΙΑ j ΑΠΟ i + 1 ΜΕΧΡΙ 15
      ΑΝ π[j] < π[min_index] ΤΟΤΕ
        min_index ← j
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    temp ← π[i]
    π[i] ← π[min_index]
    π[min_index] ← temp
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένου πίνακα
  ΓΡΑΨΕ 'Ο ταξινομημένος πίνακας (Αύξουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 15
    ΓΡΑΨΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 4: Ταξινόμηση Αριθμών με Επιλογή (Φθίνουσα)

Ένα πρόγραμμα που ταξινομεί 15 αριθμούς σε φθίνουσα σειρά χρησιμοποιώντας τη μέθοδο της επιλογής:

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Αριθμών_Επιλογή_Φθίνουσα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[15], i, j, max_index, temp
ΑΡΧΗ
  ! Διάβασε τα στοιχεία του πίνακα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 15
    ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
    ΔΙΑΒΑΣΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Επιλογή (Φθίνουσα)
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 14
    max_index ← i
    ΓΙΑ j ΑΠΟ i + 1 ΜΕΧΡΙ 15
      ΑΝ π[j] > π[max_index] ΤΟΤΕ
        max_index ← j
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    temp ← π[i]
    π[i] ← π[max_index]
    π[max_index] ← temp
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση ταξινομημένου πίνακα
  ΓΡΑΨΕ 'Ο ταξινομημένος πίνακας (Φθίνουσα) είναι:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 15
    ΓΡΑΨΕ π[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 5: Σύγκριση Μεθόδων Ταξινόμησης

Ένα πρόγραμμα που ταξινομεί έναν πίνακα 10 αριθμών χρησιμοποιώντας και τις δύο μεθόδους (Φυσαλίδα και Επιλογή) και εκτυπώνει τον ταξινομημένο πίνακα για κάθε μέθοδο:

ΠΡΟΓΡΑΜΜΑ Σύγκριση_Μεθόδων_Ταξινόμησης
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π1[10], π2[10], i, j, temp, min_index, ταξινομημένος
ΑΡΧΗ
  ! Διάβασε τα στοιχεία του πίνακα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
    ΔΙΑΒΑΣΕ π1[i]
    π2[i] ← π1[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Φυσαλίδα (Αύξουσα)
  ταξινομημένος ← 0
  ΟΣΟ ταξινομημένος = 0 ΕΠΑΝΑΛΑΒΕ
    ταξινομημένος ← 1
    ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
      ΑΝ π1[i] > π1[i + 1] ΤΟΤΕ
        temp ← π1[i]
        π1[i] ← π1[i + 1]
        π1[i + 1] ← temp
        ταξινομημένος ← 0
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Ταξινόμηση με Επιλογή (Αύξουσα)
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
    min_index ← i
    ΓΙΑ j ΑΠΟ i + 1 ΜΕΧΡΙ 10
      ΑΝ π2[j] < π2[min_index] ΤΟΤΕ
        min_index ← j
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    temp ← π2[i]
    π2[i] ← π2[min_index]
    π2[min_index] ← temp
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Εκτύπωση αποτελεσμάτων
  ΓΡΑΨΕ 'Ταξινόμηση με Φυσαλίδα (Αύξουσα):'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ π1[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ΓΡΑΨΕ 'Ταξινόμηση με Επιλογή (Αύξουσα):'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ π2[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ασκήσεις

Άσκηση 1: Ταξινόμηση με Φυσαλίδα (Αύξουσα)

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 8 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να τους ταξινομεί σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της φυσαλίδας.

Άσκηση 2: Ταξινόμηση με Φυσαλίδα (Φθίνουσα)

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 8 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να τους ταξινομεί σε φθίνουσα σειρά χρησιμοποιώντας τη μέθοδο της φυσαλίδας.

Άσκηση 3: Ταξινόμηση με Επιλογή (Αύξουσα)

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 12 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να τους ταξινομεί σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της επιλογής.

Άσκηση 4: Ταξινόμηση με Επιλογή (Φθίνουσα)

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 12 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να τους ταξινομεί σε φθίνουσα σειρά χρησιμοποιώντας τη μέθοδο της επιλογής.

Άσκηση 5: Ταξινόμηση Βαθμολογιών

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις βαθμολογίες 20 μαθητών, να τις αποθηκεύει σε έναν πίνακα και να τις ταξινομεί σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της φυσαλίδας. Στη συνέχεια, να εκτυπώνει τις βαθμολογίες και τον μέσο όρο.

Άσκηση 6: Σύγκριση Μεθόδων

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 10 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να τους ταξινομεί χρησιμοποιώντας και τις δύο μεθόδους (Φυσαλίδα και Επιλογή). Να εκτυπώνει τον ταξινομημένο πίνακα για κάθε μέθοδο.

Άσκηση 7: Ταξινόμηση με Φθίνουσα Σειρά

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 15 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να τους ταξινομεί σε φθίνουσα σειρά χρησιμοποιώντας τη μέθοδο της επιλογής.

Άσκηση 8: Ταξινόμηση Πίνακα Δύο Διαστάσεων

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τους βαθμούς 5 μαθητών σε 3 μαθήματα, να τους αποθηκεύει σε έναν πίνακα δύο διαστάσεων και να ταξινομεί τους βαθμούς κάθε μαθητή σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της φυσαλίδας.

Άσκηση 9: Ταξινόμηση και Αναζήτηση

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 10 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα, να τους ταξινομεί σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της φυσαλίδας και στη συνέχεια να αναζητά αν ένας αριθμός που θα δώσει ο χρήστης υπάρχει στον πίνακα χρησιμοποιώντας δυαδική αναζήτηση.

Άσκηση 10: Ταξινόμηση Ονομάτων

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 10 ονόματα από τον χρήστη, να τα αποθηκεύει σε έναν πίνακα και να τα ταξινομεί αλφαβητικά σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο της επιλογής.