Polski

Ταξινόμηση Πίνακα: Λύσεις Ασκήσεων

Απαντήσεις Quiz :

  1. Σ   (Βασική αρχή της μεθόδου)
  2. Λ   (Το μεγαλύτερο στοιχείο “ανεβαίνει” στο τέλος)
  3. Λ   (Μπορεί να τερματιστεί νωρίτερα αν δεν χρειαστούν ανταλλαγές)
  4. Σ   (Χρειάζονται δύο εμφωλευμένοι βρόχοι)
  5. Λ   (Είναι απλός αλλά αργός)
  6. Σ   (Αυτή είναι η βασική διαδικασία)
  7. Λ   (Κάνει λίγες μετακινήσεις, μόνο όταν αλλάζει θέση το ελάχιστο)
  8. Σ   (Ένας για την επιλογή, ένας για τη σύγκριση)
  9. Λ   (Είναι Ο(n²))
  10. Λ   (Δεν είναι σταθερή)
  11. Σ   (Αυτός είναι ο μηχανισμός της)
  12. Σ   (Σε τέτοιες περιπτώσεις είναι γρήγορη)
  13. Λ   (Και οι δύο είναι in-place (δεν απαιτούν επιπλέον χώρο))
  14. Σ   (Αν ο πίνακας είναι ήδη ταξινομημένος)
  15. Λ   (Συγκρίνεται μόνο μέχρι να βρει τη σωστή θέση)

Άσκηση 1:

ΠΡΟΓΡΑΜΜΑ Fysalida5
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ i, j, tmp
ΑΚΕΡΑΙΕΣ Α[5]
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΡΑΨΕ 'Δώσε τον ', i, 'ο αριθμό:'
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Αύξουσα φυσαλίδα
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 5
ΓΙΑ j ΑΠΟ 5 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ Α[j] < Α[j-1] ΤΟΤΕ
tmp ← Α[j]
Α[j] ← Α[j-1]
Α[j-1] ← tmp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ 'Ταξινομημένοι (αύξουσα):'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΡΑΨΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

Άσκηση 2:

ΠΡΟΓΡΑΜΜΑ FysalidaDesc
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ Ν, i, j, tmp
ΑΚΕΡΑΙΕΣ Α[200]
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε πλήθος στοιχείων (<=200):'
ΔΙΑΒΑΣΕ Ν

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Φθίνουσα φυσαλίδα
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν
ΓΙΑ j ΑΠΟ Ν ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ Α[j] > Α[j-1] ΤΟΤΕ
tmp ← Α[j]
Α[j] ← Α[j-1]
Α[j-1] ← tmp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ 'Μεγαλύτερος: ', Α[1]
ΓΡΑΨΕ 'Μικρότερος: ', Α[Ν]
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Άσκηση 3:

ΠΡΟΓΡΑΜΜΑ MathitesVathmoi
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ i, j, tmpV
ΧΑΡΑΚΤΗΡΕΣ onoma[10], tmpN
ΑΚΕΡΑΙΕΣ vathmos[10]
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ 'Όνομα μαθητή ', i, ':'
ΔΙΑΒΑΣΕ onoma[i]
ΓΡΑΨΕ 'Βαθμός μαθητή ', i, ':'
ΔΙΑΒΑΣΕ vathmos[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Αύξουσα φυσαλίδα στους βαθμούς με παράλληλη ανταλλαγή ονομάτων
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 10
ΓΙΑ j ΑΠΟ 10 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ vathmos[j] < vathmos[j-1] ΤΟΤΕ
tmpV ← vathmos[j]
vathmos[j] ← vathmos[j-1]
vathmos[j-1] ← tmpV

tmpN ← onoma[j]
onoma[j] ← onoma[j-1]
onoma[j-1] ← tmpN
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ 'Βαθμολογικός πίνακας (αύξουσα):'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ onoma[i], ' - ', vathmos[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Άσκηση 4:

ΠΡΟΓΡΑΜΜΑ Top5Bottom5
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ i, j, tmp
ΠΡΑΓΜΑΤΙΚΕΣ moMin5, moMax5
ΑΚΕΡΑΙΕΣ Α[20], sum
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Αύξουσα φυσαλίδα
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 20
ΓΙΑ j ΑΠΟ 20 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ Α[j] < Α[j-1] ΤΟΤΕ
tmp ← Α[j]
Α[j] ← Α[j-1]
Α[j-1] ← tmp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

sum ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
sum ← sum + Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
moMin5 ← sum / 5

sum ← 0
ΓΙΑ i ΑΠΟ 16 ΜΕΧΡΙ 20
sum ← sum + Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
moMax5 ← sum / 5

ΓΡΑΨΕ 'Μέσος όρος 5 μικρότερων: ', moMin5
ΓΡΑΨΕ 'Μέσος όρος 5 μεγαλύτερων: ', moMax5
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Άσκηση 5:

ΠΡΟΓΡΑΜΜΑ ThermokrasiesMedian
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ i, j, tmp
ΠΡΑΓΜΑΤΙΚΕΣ median
ΑΚΕΡΑΙΕΣ Θ[30]
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 30
ΔΙΑΒΑΣΕ Θ[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Αύξουσα φυσαλίδα
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 30
ΓΙΑ j ΑΠΟ 30 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ Θ[j] < Θ[j-1] ΤΟΤΕ
tmp ← Θ[j]
Θ[j] ← Θ[j-1]
Θ[j-1] ← tmp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Για άρτιο πλήθος (30): διάμεσος = μέσος των στοιχείων 15 και 16
median ← (Θ[15] + Θ[16]) / 2
ΓΡΑΨΕ 'Διάμεσος θερμοκρασιών: ', median
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Άσκηση 6:

ΠΡΟΓΡΑΜΜΑ Taxinomisi_Grammes
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ i, j, k, tmp
ΑΚΕΡΑΙΕΣ Α[5,5]
ΑΡΧΗ
! Εισαγωγή στοιχείων
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΡΑΨΕ 'Δώσε στοιχείο [', i, ',', j, ']:'
ΔΙΑΒΑΣΕ Α[i,j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Φυσαλίδα για κάθε γραμμή ξεχωριστά
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΙΑ j ΑΠΟ 2 ΜΕΧΡΙ 5
ΓΙΑ k ΑΠΟ 5 ΜΕΧΡΙ j ΜΕ_ΒΗΜΑ -1
ΑΝ Α[i,k] < Α[i,k-1] ΤΟΤΕ
tmp ← Α[i,k]
Α[i,k] ← Α[i,k-1]
Α[i,k-1] ← tmp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Εμφάνιση ταξινομημένου πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΡΑΨΕ Α[i,j], ' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Άσκηση 7 :

ΠΡΟΓΡΑΜΜΑ Taxinomisi_Stiles
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ i, j, k, tmp
ΑΚΕΡΑΙΕΣ Α[4,6]
ΑΡΧΗ
! Εισαγωγή στοιχείων
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
ΔΙΑΒΑΣΕ Α[i,j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Φυσαλίδα για κάθε στήλη
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 4
ΓΙΑ k ΑΠΟ 4 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ Α[k,j] > Α[k-1,j] ΤΟΤΕ
tmp ← Α[k,j]
Α[k,j] ← Α[k-1,j]
Α[k-1,j] ← tmp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Εμφάνιση
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
ΓΡΑΨΕ Α[i,j], ' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Άσκηση 8:

ΠΡΟΓΡΑΜΜΑ Taxinomisi_OlosPinakas
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ i, j, k, l, tmp, pos
ΑΚΕΡΑΙΕΣ Α[3,4], B[12]
ΑΡΧΗ
! Εισαγωγή στοιχείων
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΔΙΑΒΑΣΕ Α[i,j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Αντιγραφή σε μονοδιάστατο
pos ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
pos ← pos + 1
B[pos] ← Α[i,j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Αύξουσα φυσαλίδα στο B
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 12
ΓΙΑ j ΑΠΟ 12 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ B[j] < B[j-1] ΤΟΤΕ
tmp ← B[j]
B[j] ← B[j-1]
B[j-1] ← tmp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Επανατοποθέτηση στον δισδιάστατο
pos ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
pos ← pos + 1
Α[i,j] ← B[pos]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Εμφάνιση τελικού πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΡΑΨΕ Α[i,j], ' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Dodaj komentarz