Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

19/08/20141 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 4o: ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ Καθηγητής :

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "19/08/20141 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 4o: ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ Καθηγητής :"— Μεταγράφημα παρουσίασης:

1 19/08/20141 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 4o: ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ Καθηγητής : Δρίμτζιας Βασίλης

2 19/08/20142 ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ  Ένα από τα πιο σημαντικά ζητήματα στον προγραμματισμό  Χρησιμότητα σε πληθώρα εφαρμογών  Οι μέθοδοι αναζήτησης, εξαρτώνται κυρίως από το εάν ο πίνακας είναι ταξινομημένος ή όχι  Επιπλέον, σημαντική παράμετρος για τον καθορισμό του τρόπου αναζήτησης, είναι το εάν τα περιεχόμενα του πίνακα είναι όλα διάφορα μεταξύ τους ή όχι.  Τα στοιχεία του πίνακα μπορεί να είναι αριθμητικά ή αλφαριθμητικά Καθηγητής : Δρίμτζιας Βασίλης

3 19/08/20143 ΣΕΙΡΙΑΚΗ Ή ΓΡΑΜΜΙΚΗ ΜΕΘΟΔΟΣ ΑΝΑΖΗΤΗΣΗΣ  Η πιο απλή μέθοδος αναζήτησης  Μη ταξινομημένος πίνακας  Ξεκινώντας από το πρώτο στοιχείο του πίνακα, ελέγχουμε διαδοχικά τα στοιχεία του, μέχρι να βρούμε κάποιο που να έχει τιμή ίδια με αυτήν που αναζητούμε  Η μέθοδος επιστρέφει 0 εάν δεν βρέθηκε στοιχείο, ή τη θέση του πίνακα στην οποία βρέθηκε το στοιχείο που αναζητούσαμε Καθηγητής : Δρίμτζιας Βασίλης

4 19/08/20144 ΣΕΙΡΙΑΚΗ Ή ΓΡΑΜΜΙΚΗ ΑΝΑΖΗΤΗΣΗ Αλγόριθμος Sequential_Search Δεδομένα // n, table, key // done   ψευδής position   0 i   1 Όσο (done=ψευδής) και (i≤n) επανάλαβε Αν table[i]=key τότε done   αληθής position   i αλλιώς i   i+1 Τέλος_αν Τέλος_επανάληψης Αποτελέσματα //done, position // Τέλος Sequential_Search Καθηγητής : Δρίμτζιας Βασίλης

5 19/08/20145 ΠΑΡΑΤΗΡΗΣΕΙΣ ΣΤΗ ΓΡΑΜΜΙΚΗ ΑΝΑΖΗΤΗΣΗ  Αν κάποιο στοιχείο υπάρχει στον πίνακα παραπάνω από μια φορά, πρέπει να τροποποιήσουμε τον αλγόριθμο, να αφαιρέσουμε τη μεταβλητή done, έτσι ώστε να συνεχίζεται η αναζήτηση μέχρι το τέλος του πίνακα Καθηγητής : Δρίμτζιας Βασίλης

6 19/08/20146 ΠΟΛΛΑΠΛΗ ΕΜΦΑΝΙΣΗ ΣΤΟΙΧΕΙΟΥ Αλγόριθμος Sequential_Search Δεδομένα // n, table, key // done   ψευδής i   1 Όσο (i≤n) επανάλαβε Αν table[i]=key τότε done   αληθής Εμφάνισε ”Το στοιχείο βρέθηκε στη θέση”, i Τέλος_αν i  i+1 Τέλος_επανάληψης Αν done =  ψευδής τότε Εμφάνισε ”Το στοιχείο δεν βρέθηκε ” Τέλος Sequential_Search Καθηγητής : Δρίμτζιας Βασίλης Μπορεί να γραφεί και με την εντολή Για αντί της χρήσης της εντολής Όσο

7 19/08/20147 ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ  Εάν τα στοιχεία του πίνακα είναι ταξινομημένα, τότε ο αλγόριθμος πρέπει να σταματήσει, όταν συναντήσει ένα στοιχείο με τιμή μεγαλύτερη από την αναζητούμενη τιμή.  Πχ. Πίνακας table ταξινομημένος κατά αύξουσα σειρά και όλα τα στοιχεία του είναι διαφορετικά μεταξύ τους. Καθηγητής : Δρίμτζιας Βασίλης

8 19/08/20148 ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ ΚΑΤΆ ΑΥΞΟΥΣΑ ΣΕΙΡΑ Αλγόριθμος Sequential_Search Δεδομένα // n, table, key // done   ψευδής i   1 Όσο (done=ψευδής) και (table[i]≤key) και (i<=n) επανάλαβε Αν table[i]=key τότε done   αληθής Εμφάνισε ”Το στοιχείο βρέθηκε στη θέση”, i Τέλος_αν i   i+1 Τέλος_επανάληψης Αν done =  ψευδής τότε Εμφάνισε ”Το στοιχείο δεν βρέθηκε ” Τέλος Sequential_Search Καθηγητής : Δρίμτζιας Βασίλης

9 19/08/20149 ΠΑΡΑΔΕΙΓΜΑΤΑ  Πίνακας 9 αταξινόμητων αριθμών  Αναζητούμε το στοιχείο 56  Απαιτούνται 4 προσπελάσεις  Αναζητούμε το στοιχείο 11  Απαιτούνται 9 προσπελάσεις, δηλαδή η σάρωση ολόκληρου του πίνακα Καθηγητής : Δρίμτζιας Βασίλης

10 19/08/ ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ  Ο ίδιος πίνακας ταξινομημένος  Αναζητούμε το στοιχείο 56  Απαιτούνται 7 προσπελάσεις  Αναζητούμε το στοιχείο 11  Απαιτούνται 3 προσπελάσεις, δεδομένου ότι το 12 είναι μεγαλύτερο από το 11, και επομένως δεν έχει νόημα να συνεχιστεί η αναζήτηση Καθηγητής : Δρίμτζιας Βασίλης

11 19/08/ ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ  Η πιο απλή, αλλά και η λιγότερο αποτελεσματική μέθοδος αναζήτησης  Δικαιολογείται η χρήση της μόνο: Μη ταξινομημένος πίνακας Πίνακας μικρού μεγέθους Σπάνια εκτέλεση αναζήτησης σε συγκεκριμένο πίνακα Καθηγητής : Δρίμτζιας Βασίλης

12 19/08/ ΤΑΞΙΝΟΜΗΣΗ  Από τις πιο σημαντικές λειτουργίες σε μια δομή, είναι η τοποθέτηση των κόμβων της δομής σε μια σειρά  Η διαδικασία αυτή ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering)  Η πιο συνήθης διάταξη, είναι η αύξουσα τάξη (ascending sequence) δηλαδή η ταξινόμηση από τη μικρότερη τιμή προς τη μεγαλύτερη.  Ο απώτερος σκοπός της ταξινόμησης, είναι να διευκολυνθεί η μετέπειτα αναζήτηση των στοιχείων μέσα στη δομή αυτή.  Η χρησιμότητα της ταξινόμησης, πρακτικά αποδεικνύεται σε οποιαδήποτε μορφή αναζήτησης δεδομένων που ανακαλούμε από τον πραγματικό κόσμο (αναζήτηση τηλεφώνων από κατάλογο, λεξικά, βιβλιοθηκονομικά συστήματα, κτλ) Καθηγητής : Δρίμτζιας Βασίλης

13 19/08/ ΤΥΠΙΚΟΣ ΟΡΙΣΜΟΣ ΤΑΞΙΝΟΜΗΣΗΣ  Δοθέντων των στοιχείων a 1,a 2,...,a n η ταξινόμηση συνίσταται στη μετάθεση (permutation) της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μία σειρά a k1,a k2,...,a kn έτσι ώστε, δοθείσης μίας συνάρτησης διάταξης (ordering function), f, να ισχύει: f(a k1 ) <=  f(a k2 ) <= ... <= f(a kn ) Καθηγητής : Δρίμτζιας Βασίλης

14 19/08/ ΤΑΞΙΝΟΜΗΣΗ ΕΥΘΕΙΑΣ ΑΝΤΑΛΛΑΓΗΣ  Η ταξινόμηση με τη μέθοδο της ευθείας ανταλλαγής (straight exchange sort), βασίζεται στην αρχή της σύγκρισης και της ανταλλαγής θέσεως δύο διαδοχικών στοιχείων του πίνακα, μέχρις ότου διαταχθούν όλα τα στοιχεία.  Γίνονται διαδοχικές προσπελάσεις κάθε φορά, και μετακινείται η μικρότερη τιμή του πίνακα προς τις πρώτες θέσεις. Καθηγητής : Δρίμτζιας Βασίλης

15 19/08/ ΤΑΞΙΝΟΜΗΣΗ ΦΥΣΣΑΛΙΔΑΣ  Αν θεωρήσουμε τον πίνακα κατακόρυφο αντί για οριζόντιο, και κάθε τιμή ενός στοιχείου πίνακα, μια φυσσαλίδα με βάρος ανάλογο με την τιμή του στοιχείου, τότε ο αλγόριθμος ευθείας ανταλλαγής, τοποθετεί σταδιακά τις φυσσαλίδες, στο κατάλληλο επίπεδο βάρους, οπότε στο τέλος η ελαφρύτερη φυσσαλίδα βρίσκεται στην κορυφή, και η βαρύτερη στο κατώτερο μέρος του πίνακα Καθηγητής : Δρίμτζιας Βασίλης

16 19/08/ ΤΑΞΙΝΟΜΗΣΗ ΦΥΣΣΑΛΙΔΑΣ Καθηγητής : Δρίμτζιας Βασίλης

17 19/08/ ΑΛΓΟΡΙΘΜΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΦΥΣΣΑΛΙΔΑΣ Αλγόριθμος Φυσσαλίδα Δεδομένα // table, n // Για i από 2 μέχρι n Για j από n μέχρι i με_βήμα –1 Αν table[j-1] > table[j] τότε temp  table [j-1] table[j-1]  table[j] table[j]  temp Τέλος_αν Τέλος_επανάληψης Αποτελέσματα // table // Τέλος Φυσσαλίδα αντιμετάθεσε table[j], table [j-1] Καθηγητής : Δρίμτζιας Βασίλης


Κατέβασμα ppt "19/08/20141 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 4o: ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ Καθηγητής :"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google