Αποστολέας Θέμα: Ταξινόμηση  (Αναγνώστηκε 991 φορές)

Aischinis

  • Οπαδός
  • **
  • Μηνύματα: 10
    • www.informatics.net.gr
Ταξινόμηση
« στις: 27 Μάι 2017, 11:39:17 μμ »
Συνάδελφοι,

πως ταξινομείται ένας μονοδιάστατος πίνακας και ταυτόχρονα ένας δισδιάστατος πίνακας;  :o

Μπορούμε να έχουμε ένα παράδειγμα;

thanks  :angel:

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2224
Απ: Ταξινόμηση
« Απάντηση #1 στις: 28 Μάι 2017, 12:26:30 πμ »
Αν ο μονοδιάστατος είναι παράλληλος με τις γραμμές του δισδιάστατου, τότε κάθε φορά που αντιμετατίθενται 2 στοιχεία του μονοδιάστατου, θα πρέπει να αντιμετατίθενται και οι αντίστοιχες γραμμές του δισδιάστατου
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Λαμπράκης Μανώλης

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 677
Απ: Ταξινόμηση
« Απάντηση #2 στις: 28 Μάι 2017, 07:42:00 πμ »
Καλημέρα σε όλους

υποθέτω συνάδελφε ζητάς κάτι τέτοιο ?? έστω έχουμε 100 πωλητές σε μία εταιρία με τις μηνιαίες πωλήσεις τους σε ένα χρόνο
σε πωλ[100,12] και παράλληλο πίνακα με τα ονόματα των μηνών μήνες[12]  .. ζητάμε τις 5 μεγαλύτερες πωλήσεις κάθε πωλητή και σε ποιους μήνες τις πέτυχε .. κατά την αντιμετάθεση στοιχείων  των γραμμών "χαλάει η παραλληλότητα" με τους μήνες και κατά συνέπεια με όλες τις άλλες γραμμές, οπότε χρειάζονται αρκετές αντιμετεθέσεις για να παραμείνουν παράλληλες οι επόμενες γραμμές με τους μήνες για τις ταξινομήσεις των επόμενων γραμμών

Αλγόριθμος ταξινόμηση_δισδιάστατου
    Δεδομένα //πωλ, μήνες//   
    Για γρ από 1 μέχρι 100   
        Για i από 2 μέχρι 12   
   Για j από 12 μέχρι i με_βήμα -1   
       Αν  πωλ[γρ, j-1]<πωλ[γρ, j] τότε
      ! αντιμετάθεσε τους μήνες
             Αντιμετάθεσε μην[j-1], μην[j]
! και όλες τις γραμμές για να παραμείνουν παράλληλες   
             Για κ από 1 μέχρι 100
                Αντιμετάθεσε πωλ[κ, j-1], πωλ[κ,j]
             Τέλος_επανάληψης
       Τέλος_αν
             Τέλος_επανάληψης
          Τέλος_επανάληψης
           Για λ από 1 μέχρι 5   ! εμφάνισε τα 5 πρώτα στοιχεία και μήνες
       Εμφάνισε πωλ[γρ, λ], μην[λ]
        Τέλος_επανάληψης
    Τέλος_επανάληψης
Τέλος  ταξινόμηση_δισδιάστατου

Aischinis

  • Οπαδός
  • **
  • Μηνύματα: 10
    • www.informatics.net.gr
Απ: Ταξινόμηση
« Απάντηση #3 στις: 28 Μάι 2017, 10:23:45 πμ »
Καλημέρα  :)

Ακριβώς αυτό ζητούσα, έτσι το σκέφτηκα!
Και έχω να πω πως κάτι τέτοιο είναι πολύ χρήσιμο και αποτελεί καλή άσκηση για τους μαθητές μας.

Ευχαριστώ!

eris_st

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 3
Απ: Ταξινόμηση
« Απάντηση #4 στις: 29 Μάι 2017, 12:25:25 μμ »
μια λύση για αυτή την άσκηση;

Λάμπρος Παπαδόπουλος

  • Βετεράνος
  • ****
  • Μηνύματα: 63
Απ: Ταξινόμηση
« Απάντηση #5 στις: 29 Μάι 2017, 02:31:08 μμ »
Μερικές φορές είναι βολικό να χρησιμοποιείς αντίγραφα των δεδομένων που χρειάζεσαι.
Με την προϋπόθεση οτι δεν είναι όλες άκυρες και όλες οι δεύτερες επιδόσεις είναι διαφορετικές, μια
πρόχειρη λύση για τα δυο τελευταία ερωτήματα είναι η παρακάτω:
Κώδικας: Bash
  1. max1 <- 0
  2. ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
  3.    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
  4.       αντΕπ[j] <- Επίδοση[i,j]
  5.    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  6.  
  7.    ταξινόμηση ΚΑΙ εκτύπωση του αντΕπ
  8.  
  9.    ΑΝ αντΕπ[1] > max1 ΤΟΤΕ
  10.       max1 <- αντΕπ[1]
  11.       max2 <- αντΕπ[2]
  12.       νικητής <- ΟΝ[i]
  13.    ΑΛΛΙΩΣ_ΑΝ αντΕπ[1] = max1 ΤΟΤΕ
  14.       ΑΝ αντΕπ[2]>max2 ΤΟΤΕ
  15.          max2 <- αντΕπ[2]
  16.          νικητής <- ΟΝ[i]
  17.       ΤΕΛΟΣ_ΑΝ
  18.    ΤΕΛΟΣ_ΑΝ
  19. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Λάμπρος Παπαδόπουλος

  • Βετεράνος
  • ****
  • Μηνύματα: 63
Απ: Ταξινόμηση
« Απάντηση #6 στις: 30 Μάι 2017, 12:13:13 πμ »
Μια ολοκληρωμένη λύση είναι η παρακάτω
(τελικά δεν χρειάζεται αντίγραφο. Όταν έγραψα το προηγούμενο post έφτιαχνα μια άσκηση που είχε έναν πίνακα από πάνω και
παρασύρθηκα...)
Κώδικας: Bash
  1. ΠΡΟΓΡΑΜΜΑ Άλμα_εις_μήκος
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.   ΑΚΕΡΑΙΕΣ: i, j, γρ
  4.   ΠΡΑΓΜΑΤΙΚΕΣ: Επίδοση[12, 6], tmp, max1, max2
  5.   ΧΑΡΑΚΤΗΡΕΣ: ON[12], νικητής
  6.  
  7. ΑΡΧΗ
  8.   ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
  9.     ΓΡΑΨΕ 'Όνομα ', i, 'ου αθλητή'
  10.     ΔΙΑΒΑΣΕ ON[i]
  11.     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
  12.       ΓΡΑΨΕ 'Επίδοση στο ', j, 'o άλμα'
  13.       ΔΙΑΒΑΣΕ Επίδοση[i, j]
  14.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  15.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  16.  
  17.   ΓΙΑ γρ ΑΠΟ 1 ΜΕΧΡΙ 12
  18.  
  19.     ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 6
  20.       ΓΙΑ j ΑΠΟ 6 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
  21.         ΑΝ Επίδοση[γρ, j] > Επίδοση[γρ, j - 1] ΤΟΤΕ
  22.           tmp <- Επίδοση[γρ, j]
  23.           Επίδοση[γρ, j] <- Επίδοση[γρ, j - 1]
  24.           Επίδοση[γρ, j - 1] <- tmp
  25.         ΤΕΛΟΣ_ΑΝ
  26.       ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  27.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  28.  
  29.     ΓΡΑΨΕ ON[γρ]
  30.     j <- 1
  31.     ΟΣΟ j <= 6 ΕΠΑΝΑΛΑΒΕ
  32.       ΑΝ Επίδοση[γρ, j] > 0 ΤΟΤΕ
  33.         ΓΡΑΨΕ Επίδοση[γρ, j]
  34.         j <- j + 1
  35.       ΑΛΛΙΩΣ
  36.         j <- 7
  37.       ΤΕΛΟΣ_ΑΝ
  38.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  39.  
  40.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  41.  
  42.   max1 <- 0
  43.   ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
  44.     ΑΝ Επίδοση[i, 1] > max1 ΤΟΤΕ
  45.       max1 <- Επίδοση[i, 1]
  46.       max2 <- Επίδοση[i, 2]
  47.       νικητής <- ON[i]
  48.     ΑΛΛΙΩΣ_ΑΝ Επίδοση[i, 1] = max1 ΤΟΤΕ
  49.       ΑΝ Επίδοση[i, 2] > max2 ΤΟΤΕ
  50.         max2 <- Επίδοση[i, 2]
  51.         νικητής <- ON[i]
  52.       ΤΕΛΟΣ_ΑΝ
  53.     ΤΕΛΟΣ_ΑΝ
  54.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  55.   ΓΡΑΨΕ 'Νικητής ο ', νικητής
  56.  
  57. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
  58.