Σάββατο 1 Μαρτίου 2014

ΤΑΞΙΝΟΜΗΣΗ ΜΕΡΟΣ1

Βασίζεται στην αρχή της σύγκρισης γειτονικών στοιχείων του πίνακα και ανταλλαγής τους μέχρι να διαταχθούν όλα σε μία σειρά (αύξουσα ή φθίνουσα).

Η λογική είναι η εξής: Κάνουμε διαδοχικές σαρώσεις στον πίνακα. Σε κάθε σάρωση, το μικρότερο στοιχείο (για αύξουσα) μετακινείται προς την κορυφή του πίνακα αφού γίνουν όλες οι σαρώσεις θα έχει επιτευχθεί η ταξινόμηση.   

Αλγόριθμος Φυσαλίδα_Bubble_Sort
Δεδομένα // ΠΙΝ,Ν//
Για i από 2 μέχρι Ν
      Για j από N μέχρι i με_βήμα -1
          Αν ΠΙΝ[j] < ΠΙΝ[j-1] τότε
             temp ← ΠΙΝ[j-1]
             ΠΙΝ[j-1] ← ΠΙΝ[j]
             ΠΙΝ[j] ← temp
          Τέλος_αν
       Τέλος_επανάληψης
Τέλος_επανάληψης
Αποτελέσματα //ΠΙΝ,Ν//
Τέλος Φυσαλίδα_Bubble_Sort

! το i περιγράφει τις σαρώσεις του πίνακα που είναι Ν-1
! το j αναφέρεται στα στοιχεία που συγκρίνονται σε κάθε σάρωση από το τέλος προς τη θέση i
! αν το j-1 στοιχείο είναι μεγαλύτερο από το j στοιχείο τότε κάνε αντιμετάθεση στοιχείων. Δηλαδή, το j στοιχείο θα! πάει στη θέση του j-1 και το j-1 στη θέση του j
! Επειδή δε μπορεί να γίνει άμεσα διότι θα χαθεί το στοιχείο j-1, προσωρινά τοποθετείται στη βοηθητική μεταβλητή temp

Παράδειγμα: Να ταξινομηθούν οι ακέραιοι 12, 7, 5, 3, 10 ενός πίνακα. Πώς διαμορφώνεται ο πίνακας σε κάθε βήμα του αλγορίθμου;


δείκτες
θέσεις πίνακα
i
j
1
2
3
4
5
2
5
12
7
5
3
10

4
12
7
3
5
10

3
12
3
7
5
10

2
3
12
7
5
10
3
5
3
12
7
5
10

4
3
12
5
7
10

3
3
5
12
7
10
4
5
3
5
12
7
10

4
3
5
7
12
10
5
5
3
5
7
10
12

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου