Πέμπτη 13 Μαρτίου 2014

Έξυπνη φυσαλίδα

Αλγόριθμος  έξυπνης φυσαλίδας

Ο αλγόριθμος Ταξινόμηση Φυσαλίδας  δεν είναι αρκετά έξυπνος γιατί αν τα στοιχεία του ήταν ταξινομημένα από την αρχή ή κατά την διάρκεια της ταξινόμησης σε κάποιο πέρασμα ταξινομηθούν, αυτός δεν σταματά αλλά συνεχίζει με όλες τις επαναλήψεις.
Να σχεδιάσετε μια παραλλαγή του ώστε να σταματά όταν διαπιστωθεί ότι τα στοιχεία του Π είναι ήδη ταξινομημένα....


Αλγόριθμος έξυπνη
Δεδομένα // Π, Ν //
αταξινόμητος  Αληθής
i  2
Όσο i  N και αταξινόμητος = Αληθής επανάλαβε
       α  Ψευδής
       Για j από Ν μέχρι i με_βήμα -1
            Αν Π[j - 1] > Π[j] τότε
                 Τemp  Π[j - 1]
                 Π[j - 1]  Π[j]
                 Π[j]  Τemp
                 αταξινόμητος  Αληθής
            Τέλος_αν
       Τέλος_επανάληψης
       i  i + 1
Τέλος_επανάληψης
Αποτελέσματα // Π, Ν //
Τέλος έξυπνη 


εναλλακτικά με τη μέχρις_ότου:

Αλγόριθμος έξυπνη
Δεδομένα // Π, Ν // 
i  2
Αρχή_επανάληψης
       ταξινομημένος ← Αληθής
       Για j από Ν μέχρι i με_βήμα -1
            Αν Π[j - 1] > Π[j] τότε
                 Τemp  Π[j - 1] 
                 Π[j - 1]  Π[j] 
                 Π[j]  Τemp
                 ταξινομημένος  Ψευδής
            Τέλος_αν
       Τέλος_επανάληψης
       i  i + 1
Μέχρις_ότου i > N και Ταξινομημένος = Αληθής
Αποτελέσματα // Π, Ν // 
Τέλος έξυπνη


1 σχόλιο:

  1. νομίζω ότι στη μέχρις_οτου υπάρχουν λάθη το και πρέπει να έιναι Η και στο ταξινομημένος είναι λάθος οι τιμές αληθης και ψευδής

    ΑπάντησηΔιαγραφή