Αποστολέας Θέμα: Συγχώνευση πινάκων  (Αναγνώστηκε 4606 φορές)

elepap

  • Νέος
  • *
  • Μηνύματα: 8
Συγχώνευση πινάκων
« στις: 02 Μάι 2012, 12:45:34 μμ »
Καλημέρα!Θα ήθελα να σας ρωτήσω αν μπορώ να συγχωνεύσω 2 μονοδιάστατους πίνακες Α,Β με Ν και Μ θέσεις αντίστοιχα σε ένα καινούργιο πίνακα Γ με τον παρακάτω τρόπο:

Αλγόριθμος Συγχώνευση
Δεδομένα //Α,Β,Ν,Μ//
i<--1
j<--1
Για κ από 1 μέχρι Ν+Μ
    Αν j>Μ τότε
        Γ[κ]<--Α
        i<--i+1
    αλλιώς_αν i>Ν τότε
        Γ[κ]<--Β[j]
        j<--j+1
    αλλιώς_αν Α<Β[j] τότε
        Γ[κ]<--Α
        i<--i+1
    αλλιώς
        Γ[κ]<--Β[j]
        j<--j+1
    Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα //Γ//
Τέλος Συγχώνευση

Χρειάζεται να προσθέσω κάτι άλλο;

twisted

  • Θαμώνας
  • ***
  • Μηνύματα: 42
Απ: Συγχώνευση πινάκων
« Απάντηση #1 στις: 02 Μάι 2012, 01:00:03 μμ »
Εντάξει το βλέπω μόνο κάτι δείκτες σου έχουν ξεφύγει:

Αλγόριθμος Συγχώνευση
Δεδομένα //Α,Β,Ν,Μ//
i<--1
j<--1
Για κ από 1 μέχρι Ν+Μ
    Αν j>Μ τότε
        Γ[κ]<--Α[ i ]
        i<--i+1
    αλλιώς_αν i>Ν τότε
        Γ[κ]<--Β[j]
        j<--j+1
    αλλιώς_αν Α[ i ]<Β[j] τότε
        Γ[κ]<--Α[ i ]
        i<--i+1
    αλλιώς
        Γ[κ]<--Β[j]
        j<--j+1
    Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα //Γ//
Τέλος Συγχώνευση

elepap

  • Νέος
  • *
  • Μηνύματα: 8
Απ: Συγχώνευση πινάκων
« Απάντηση #2 στις: 02 Μάι 2012, 01:21:00 μμ »
Τους είχα βάλει τους δείκτες αλλά δεν ξέρω για ποιον λόγο δεν εμφανίστηκαν. Τέλος πάντων.
Κι εγώ όταν τον είδα μου φάνηκε σωστός και απόρησα για ποιον λόγο δεν χρησιμοποιούμε αύτον τον αλγόριθμο και χρησιμοποιούμε τον άλλον που έχουν στο τετράδιο του μαθητή;
Θα μπορούσε να μου πει κάποιος για ποιον λόγο ΔΕΝ θα χρησιμοποιούσε αυτόν τον αλγόριθμο;

twisted

  • Θαμώνας
  • ***
  • Μηνύματα: 42
Απ: Συγχώνευση πινάκων
« Απάντηση #3 στις: 02 Μάι 2012, 03:43:31 μμ »
Μάλλον δεν στα έβγαλε λόγω του bb code για τα italics.

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

Stefevan

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 274
Απ: Συγχώνευση πινάκων
« Απάντηση #4 στις: 02 Μάι 2012, 09:13:25 μμ »
Γεια σου!  :) Προσωπικά δεν θα το χρησιμοποιούσα γιατί μπλέκει δύο διαφορετικά πράγματα μαζί σε μια δομή Αν! Γούστα είναι αυτά!  :P Που ήταν γραμμένος ο αλγόριθμος?

elepap

  • Νέος
  • *
  • Μηνύματα: 8
Απ: Συγχώνευση πινάκων
« Απάντηση #5 στις: 02 Μάι 2012, 11:28:45 μμ »
Το έγραψε ένας μαθητής για να λύσει μία άσκηση και δεν το πήρα λάθος. Μου φαίνεται πιο εύκολος και πιο κατανοητός για τους μαθητές αυτός ο αλγόριθμος.

elepap

  • Νέος
  • *
  • Μηνύματα: 8
Απ: Συγχώνευση πινάκων
« Απάντηση #6 στις: 04 Μάι 2012, 08:02:34 μμ »
Κανένα σχόλιο από κάποιον άλλον;Για ποιον λόγο δεν θα χρησιμοποιούσατε τον παραπάνω αλγόριθμο;;

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1127
Απ: Συγχώνευση πινάκων
« Απάντηση #7 στις: 09 Μάι 2012, 09:32:24 πμ »
Το έγραψε ένας μαθητής για να λύσει μία άσκηση και δεν το πήρα λάθος. Μου φαίνεται πιο εύκολος και πιο κατανοητός για τους μαθητές αυτός ο αλγόριθμος.

ΟΙ πίνακες που συγχωνεύονται είναι ταξινομημένοι ή όχι;

elepap

  • Νέος
  • *
  • Μηνύματα: 8
Απ: Συγχώνευση πινάκων
« Απάντηση #8 στις: 09 Μάι 2012, 05:06:21 μμ »
Οι πίνακες Α και Β είναι ταξινομημένοι.

ipoulis

  • ΠΛΗΝΕΤ
  • *
  • Μηνύματα: 56
  • Dum spiro spero
Απ: Συγχώνευση πινάκων
« Απάντηση #9 στις: 31 Μάι 2012, 10:33:25 μμ »
Πολύ ωραία ιδέα και σαφώς ποιο κατανοητή από αυτή του τετραδίου μαθητή.

epsilonXi

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 150
Απ: Συγχώνευση πινάκων
« Απάντηση #10 στις: 01 Ιούν 2012, 08:10:16 μμ »
προσωπικά προτιμώ γενικά να δείχνω την απλοϊκή λύση της αντιγραφής των Α, Β στον Γ, και εκ των υστέρων ταξινόμησης του Γ, εξηγώντας ότι δεν είναι καλή λύση από άποψη αποδοτικότητας...

σε τμήματα που «τραβάνε» προτιμώ να δείχνω τον αλγόριθμο που παρατέθηκε, αλλά συντομευμένο ακόμα περισσότερο:

Αλγόριθμος Συγχώνευση
Δεδομένα //Α,Β,Ν,Μ//
i<--1
j<--1
Για κ από 1 μέχρι Ν+Μ
    Αν j>Μ ή (i <= N και Α[ i ]<Β[j]) τότε
        Γ[κ]<--Α[ i ]
        i<--i+1
    αλλιώς
        Γ[κ]<--Β[j]
        j<--j+1
    Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα //Γ//
Τέλος Συγχώνευση