Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Μονοδιάστατοι πίνακες => Γ΄ Λυκείου => Ταξινόμηση => Μήνυμα ξεκίνησε από: ΑΝΔΡΕΑΣ στις 21 Μαρ 2006, 01:12:45 ΜΜ

Τίτλος: ΕΡΩΤΗΣΗ - ΑΝΤΙΜΕΤΑΘΕΣΗ ΤΙΜΩΝ
Αποστολή από: ΑΝΔΡΕΑΣ στις 21 Μαρ 2006, 01:12:45 ΜΜ
Θα ηθελα να κανω μια ερωτηση.Ποια η διαφορα των δυο πιο κατω δομών;

!στον αλγόριθμο φυσαλίδας

temp<- A[j]
A[j]<- A[j-1]             ! Αντιμετάθεσε Α[J],A[J-1]
A[j-1]<-temp

και

temp<- A[j-1]
A[j-1]<- A[j]             ! Αντιμετάθεσε Α[J-1],A[J]
A[j]<-temp

Μπορούν και οι δυο να χρησιμοποιηθουν στη φυσαλίδα(είτε αυξουσα ειτε φθινουσα);
Ευχαριστώ.




Τίτλος: Απ: ΕΡΩΤΗΣΗ - ΑΝΤΙΜΕΤΑΘΕΣΗ ΤΙΜΩΝ
Αποστολή από: P.Tsiotakis στις 21 Μαρ 2006, 01:24:44 ΜΜ

Καμία διαφορά, έχουν ακριβώς το ίδιο αποτέλεσμα (και με ένα παραδειγματάκι το επαληθεύουμε)

Δεν πρέπει βέβαια, να ξεχνάμε οτι η μεταβλητή temp και ο πίνακας είναι του ιδίου τύπου π.χ. αριθμητικές (αν θέλουμε να αντιμεταθέσουμε και τα στοιχεία αλφαριθμητικού πίνακα, πρέπει να πάρουμε άλλη βοηθητική μεταβλητή)

Με εκτίμηση,
Τίτλος: Απ: ΕΡΩΤΗΣΗ - ΑΝΤΙΜΕΤΑΘΕΣΗ ΤΙΜΩΝ
Αποστολή από: EleniK στις 24 Μαρ 2006, 12:22:26 ΠΜ
Και οι δυο περιπτώσεις είναι σωστές. Η διαφορά τους είναι ότι στον πάνω αλγόριθμο, το από κάτω στοιχείο πρώτα καταχωρείται στην μεταβλητρή temp, ενώ στη δεύτερη περίπτωση το από πάνω στοιχείο καταχωρείται πρώτα στην temp. Είναι όπως το να ανταλλάσεις τις θέσεις δυο τιμών, δεν έχει σημασία ποια θα 'κουνήσεις' πρώτη. Οι ΄κινήσεις είναι κυκλικές , οπότε το αποτέλεσμα το ίδιο.

Το αύξουσα καθορίζεται από το Αν. Αν Α[ξ]<Α[ξ-1], ενώ το φθίνουσα είναι Α[ξ]>Α[ξ-1]